1. 数据类型:
- 整数:其写法和数学的写法一样,例如1,-1,0;十六进制用
0x
表示,例如0xff
。 - 浮点数:
1.23,1.7e3,1.2e-3
。 - 字符串:使用
''
或""
表示。 - 布尔值:
true
或false
;布尔值可以使用and
、or
、not
进行运算。 - 空值:空值是Python里一个特殊的值,用
None
表示。None
不能理解为0,因为0是有意义的,而None
是一个特殊的空值。 - 数据列表(list):有序列表,可以随时添加和删除元素。
demo_list = ["Admin", 90, "Tom", 80] # list 中的数据类型可以不一致
empty_list = []
demo_list[0] # 访问 list 中索引为0的元素,得到:"Admin"
demo_list[-1] # 访问 list 中倒数第1个元素,得到:80
empty_list.append(1) # 在 list 末尾追加1各元素,得到:[1]
empty_list.insert(0,"Tim") # 在 list 的0位置追加一个元素,得到:["Tim", 1]
empty_list.pop(1) # 删除 list 索引为1的元素,得到:["Tim"]
empty_list.pop() # 删除 list 末尾的元素,得到:[]
demo_list[0] = "Jary" # 将索引为0位置的元素替换,得到:["Jary", 90, "Tom", 80]
- 元组(tuple):与 list 相似,有序,可以同时存储多种类型的数据,但是一旦创建就不能修改
demo_tuple = ("Admin", 90, "Tom", 80)
demo_tuple[0] # 得到:"Admin"
demo_tuple[-1] # 得到:80
single_tuple=(1,) # 单元素的元组,必须在元素后面添加逗号
empty_tuple = () # 空元组
#
change_tuple = (1, 2, ["Admin", 90]) # 元组虽然不可改变,但其中的list是可变的
temp_tuple = change_tuple[2]
temp_tuple[0] = "Tom"
temp_tuple[1] = 80 # 此时 change_tuple 的值为:(1, 2, ["Tom", 80])
- 字典(dict):key-value集合,对比 java 中的 Map
demo_dict = {'Admin':90, 'Tom':80}
len(demo_dict) # 得到 dict 的长度:2
- dict 查找速度快,无论元素多少,查找速度都一样;而 list 的查找速度随着元素增加而逐渐下降。
- dict 内部的元素是无序的,即存入的顺序和取出来的顺序不一样;而 list 是有序的。
- dict 的 key 是不可变的,所以可以使用字符串、整数、浮点数作为 key,但是不能使用 list 作为 key。
2. python 的打印
print(100 + 200) # 得到:300
print('100 + 200 =', 100 + 200) # 得到:100 + 200 = 300
3. 数组切片
l[a:b:n]
表示从
[a,b)
,每隔n
个值获取数组l
的元素后重新生成一个新的数组;
- 如果从索引0开始,可以省略
a
;- 如果到最后一个元素,可省略
b
;- 如果连续取值,可省略
:b
;
l = range(1, 101)
for i in l[4:50:5]:
print(i)
print(l[4:50:5])
# 倒序切片 最后10个5的倍数
print(l[(-9*5)-1::5]) # range(55, 101, 5)
4. 生成特定的数组
- 生成一个 [1x1, 2x2, 3x3, ..., 10x10] 的数组
[x * x for x in range(1, 11)]
- 请编写一个函数,它接受一个 list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略。
def toUppers(l):
return [x.upper() for x in l if isinstance(x, str)]
print(toUppers(['Hello', 'world', 101]))
# ['HELLO', 'WORLD']