# 最常用的import案例,用来说明在notebook中怎么输入和执行
import numpy as np
# 表达式和输出,print函数、直接输出、输出格式化
print(999 * 3)
"{:<5d}".format(2 + 16)
# 使用Unicode字符作为变量名等
姓名 = "小林"
print("My Name IS {}".format (姓名))
# bool 类型示例
True, False
# 列表 (List) 的例子
la = [1, 2, 3]
print(la)
# 通过下标访问列表元素
la[1]
# 列表的元素可以有不同类型,甚至可以是另外一个列表,形成列表嵌套
lb = [999, la, 666, "Hello"]
print(lb)
len(lb)
# 空列表例子
l_empty = []
l_empty
# 元组 (Tuple) 元组是不可修改的
ta = (1, 2, 3)
print(ta)
# 元组和列表的最大区别,就是列表可以修改,而元组不行
la[2] = 100
la
# 对元组的修改会报错
ta[1] = 0
# 单元素的列表和元组,特别注意,单元素的元组,必须在值后面加个逗号,否则会被认为是括号
lc = [1]
tc = (1)
tcc = (1,)
dd = lc, tc, tcc
dd
# 元组应用之一:给多个变量同时赋值
d0, d1, d2 = 198, 345, 23
# 字典 (Dict) 的例子,字典是一系列键-值对 (Key to Value),键可以是整数或者字符串
dx = {
1:"One",
2:"Three",
9:"Hello",
"E":987.654,
}
dx
# 通过键访问字典,类似于下标写法
dx[1], dx["E"]
# 通过键修改字典元素值,如果键存在则更新 ,如果不存在就添加
dx["RA"] = "12:34:56.78"
dx
# 切片案例
lx = [1, 3, 5, 0, 9, 3, 5]
print(lx[0]) # 正常访问
print(lx[5])
print(lx[-1]) # 负数下标表示从尾部向前
print(lx[2:6]) # 切片,选择区域,2:6表示2,3,4,5
print(lx[5:2:-1]) # 逆向切片,注意第三项是步长
print(lx[::2]) # 切片的三个要素都能省略,前两项省略表示从头到尾(或者从尾到头)
# 列表的加法运算,直接连接
la + lb
# 列表乘整数,表示重复。注意和数组乘的区别
# 另外,这里结尾加了分号,所以本单元格实际上最后一个语句是空语句 ,所以前面的输出被抹掉了
la * 3;
# if语句,条件不一定非要是bool,一切皆可,非零非空就是真
if not None:
print(la)
s = 0
while s < 100:
s += 16
print(s)
# for循环,实际上for循环相当于其他语言的foreach
# 通过range生成器,实现了其他语言的计数循环
s = 0
for i in range(10): # 0--9
print(i)
s += i
print(s)
# range也可以实现类似切片的操作
for i in range(2, 10, 3):
print("-->> {}".format(i))
# Unicode字符串,也可以被循环拆解
for c in "你好":
print(c)
# 对列表进行循环的一个典型做法,先求长度,再逐个循环
for i in range(len(la)):
print("la[{i}] = {x}".format(i=i, x=la[i]))
# range+len组合的更优雅实现,这里利用了元组同时对多个变量赋值的能力
for i, x in enumerate(la):
print("la[{i}] = {x}".format(i=i, x=x))
# 同时迭代多个对象
for i1, i2 in zip(la, lb):
print(i1, i2)