CHAPTER 2-Python Language Basics, IPython, andJupyter Notebooks
Jupyter Notebook
tab补全
按下tab可以搜索已输入变量的命名空间,也可以补全任何对象的方法和属性。
自省
在变量前后使用问号❓,可以显示对象的详细信息。
b = [1,2,3]
b?
print?
如果对象是一个函数或者实例方法,定义过的字符串文档,也会显示出信息
def numbers_add(a,b) # 定义一个加法函数
'''
Add two numbers
Returns
------
the_sum:type of arguments
'''
return a + b
numbers_add?
使用❓❓可以显示出函数的源代码
numbers_add??
❓还能搜索命名空间,用字符和通配符结合可以匹配所有的名字,例如想要获取所有包含load的Numpy命名空间:
np.*load*?
jupyter快捷键


python语法基础
使用缩进
python不需要括号,但是有严格的缩进格式,例如
# 生成二维坐标(x,y)要求x不小于y
for i in range(4):
for j in range(4):
if j > i:
break
print((i,j))
'''
用三层单引号就能实现多行的注释!
'''
注释
在python中单行注释用符号 # 来实现
多行的注释用三个单引号来实现(示例如上)
变量和参数传递
a = [1,2,3] # 创建一个列表命名为变量a
b = a # 将a赋值给一个新变量b
print(a)
print(b)
在python中,a和b其实是同一个对象。

python的对象通常都有属性和方法
二元运算符和比较运算符

可变与不可变对象
python中大部分对象都是可变对象,如列表、字典、Numpy数组等,以及用户自己定义的类型也是可变的。
list = ['nihao',1,99,[33,5]] # 在这个列表中包含有字符串,数字,列表
list[2]=0 # 将列表中索引为2的元素更改为0
print(list)
字符串和元组是不可变的对象,例如下面这串代码运行就会报错
tuple = (1,2,(3,4))
tuple[1] = 555 # 试图修改元组中索引为2的位置的元素
标量类型

数值类型
py的主要数值类型是int和float类型,int可以存储任意大的数
浮点数使用python的float类型。每个都是双精度(64位)值。不能整除的数会得到浮点数。
字符串
用单引号,双引号都可以来写字符串,但是对于要换行的字符串注意一定要使用三引号,单的双的都可以,类比于多行注释。
name = 'zhangsan'
introduce = "He is a student in *** university."
others = '''
He is a boy.
He like fishing.
'''
需要注意的是字符串是不可变的对象。
字符串是一个序列Unicode字符,因此可以像其他序列一样处理,可以切片,也可以索引提取
s = 'python'
s_list = list(s)
s[1]
s[:3]
在python中反斜杠\是转义字符,如果要写一个包含反斜杠\的字符串,需要对\进行转义。
s = '11\\22'
# 输出结果是11\22
如果在一个字符串中包含有很多个\可以在字符串前加一个r来表示它本身。
s = r'nihao\\wozhendehaoma\\\'
将两个字符串合并可以得到一个新的字符串
a = 'zheshiyigezifuchuan,'
b = 'zheyeshiyigezifuchuan'
c = a + b
print(c)
布尔值
py中的布尔值有两个True and False.
日期和时间
py内建的datetime模块提供了datetime、date和time类型,datetime是最常用的。
from datetime import datetime,date,time
dt = datetime(2025,10,13,18,30,29)
dt.day
dt.minute
dt.date()
dt.time()
用strftime将datetime格式化为字符串,用strptime将字符串转化成datetime对象。

dt.strftime(%m/%d/%Y %H:%M)
datetime.strptime('20251013',%Y/%m/%d)
If、elif和else
检查一个条件,判断为True就执行后面的语句。
这里需要注意的是严格的缩进和判断语句后的冒号!!
if x < 0 :
print(r'It's a negative')
elif x == 0:
print('Equal to zero')
else:
print(r'It's a positive')
当if语句中包含有and和or时候,会从左往右执行。
for循环
for循环是在一个集合(列表或者元组)中循环,或者干脆就是一个循环迭代器,标准语句是:
for value in collection:
# do something with value
# 利用for循环计算1-100的和
sum = 0
for i in range(101): # 这里101是因为range方法取头不取尾
sum +=i
continue使for循环提前,break跳出for循环,break循环之中断最内层循环,其余的for循环还是会进行。
sequence1 = [1,2,None,5,None]
total1 = 0
for item in sequence1:
if value is None:
continue
total +=item
sequence2 = [1,4,3,2,5,1]
sum1 = 0
for value in sequence2:
if value ==5:
break
sum1 +=value
for i in range(4):
for j in range(4):
if j>i:
break
print(i,j)
while循环
while循环指定了条件,当条件判断为False或者用break退出循环,pass可以作为未执行代码的占位符。
# 用while循环求1-100的和
i =100
sum = 0
while i>0:
sum+=i
i-=1
range函数返回一个迭代器,产生一个均匀分布的整数序列。range的三个参数是起点,重点,步长。需要注意的是range产生整数是不包含终点的。
list = list(range(0,20,2)
更多推荐
所有评论(0)