变量用来存储数据,指令用来处理数据

1、类型

  1. 数字型:
  2. int # 整型 id = 1
  3. float # 浮点型 num = 11.1
  4. bool # 布尔型 flag = True
  5. True 0即真
  6. False 0
  7. complex # 复数型
  8. 非数字型:
  9. 字符串 s = "hello world"
  10. 列表 list1 = [1,2,3]
  11. 元组 tuple1 = (1,2,3)
  12. 字典 dict1 = {"name":"lisi","age":16}
  13. 集合 set1 = {1,2,3}
  14. (*b,) = 1, 2, 3 # [*b] = 1,2,3
  15. a, *c = 1, 2, 3
  16. print(a)
  17. print(type(b)) # list

1.1、字符串

image.png
image.png

2、命名

  1. 1、字母、数字、_
  2. 2、不能数字开头
  3. 推荐:一般以_分割单词,如 name_list

3、变量间计算

  1. 数字间可以直接计算
  2. 变量bool型,True对应数字1False对应数字0
  3. 字符串变量之间使用 + 号进行拼接
  4. 字符串和整数之间 使用 * 号可以重复拼接字符串
  5. 注意:字符串不能和整数相加,也不能和浮点数相乘

4、列表

4.1、定义

  1. name_list = ["lizi", "wangwu", "lisi"]
  2. num_list = [1, 2, 3, 4]
  3. a = list() # 空列表

4.2、使用

  1. num_list = [5, 8, 3, 10]
  2. num_list.sort() # 升序排序
  3. num_list.sort(reverse=True) # 降序排序
  4. num_list.reverse() # 反转
  5. len(num_list)
  6. num_list.append(2)
  7. num_list.remove(3)
  8. print(num_list)

4.3、迭代遍历

  1. num_list = [5, 8, 3, 10]
  2. for num in num_list:
  3. print(num)

4.4、列表推导式

  1. # 不带条件
  2. list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  3. new_list = [i[-1] for i in list1]
  4. print(new_list) # [3, 6, 9]
  5. # 带if条件
  6. list1 = [{"name": "lisi", "age": 14}, {"name": "ww", "age": 14}, {"name": "zs", "age": 20}]
  7. new_list = [18 if dict1["age"] > 18 else dict1["age"] + 1 for dict1 in list1]
  8. print(new_list) #[15, 15, 18]
  9. # if else 条件
  10. list1 = [{"name": "lisi", "age": 14}, {"name": "ww", "age": 14}, {"name": "zs", "age": 20}]
  11. new_list = [ dict1 for dict1 in list1 if dict1["age"] >18 ]
  12. print(new_list) #[{'name': 'zs', 'age': 20}]
  13. result = [(x, y) for x in range(1, 5) if x % 2 == 0 for y in range(1, 10) if y % 2 != 0]
  14. print(result) #[(2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9)]

5、元组

5.1、定义

  1. #元组定义好后不能修改
  2. num_tuple = (1, True, 1.45, "hello")
  3. num_tuple = (12,) #定义单个元素的元组,后面需要加一个,号
  4. num_tuple = () # 空元组 a = tuple()

5.2、使用

  1. num_tuple = (1, 1.45, True, "hello")
  2. print(num_tuple.count(1)) # 注意True 也是数字1
  3. #格式字符串
  4. str1 = ("小明", 14, 22.2)
  5. print("%s %d %f" % str1)
  6. #列表和元组互相转换
  7. num_tuple = (1, 1.45, True, "hello")
  8. num_list = list(num_tuple)
  9. print(type(num_list))
  10. print(type(tuple(num_list)))
  11. #元组因为一般存储不同类型的数据,所以迭代遍历使用的较少,列表一般存储相同类型的数据

6、字典

6.1、定义

  1. dict1=dict() # 空字典
  2. user1 = {
  3. "name": "lisi",
  4. "age": 18,
  5. "male": True,
  6. "weight": 76.5
  7. }
  8. print(user1)

注意:字典是无序的,key不能相同

6.2、使用

  1. user1["high"] = 222 # 增
  2. user1.pop("male") # 删
  3. user1["name"] = "zs" # 改
  4. print(user1["name"]) # 查

6.2、迭代遍历

  1. user1 = {
  2. "name": "lisi",
  3. "age": 18,
  4. "male": True,
  5. "weight": 76.5
  6. }
  7. for k in user1:
  8. print("%s = %s" %(k, user1[k]))

6.3、字典推导式

7、集合

7.1、定义

  1. set1 = set() # 空集合
  2. set2 = {1,2,3}
  3. set1.add(1)
  4. print(set1)
  5. print(set2)

7.2、使用

  1. num_list = [1, 3, 4, 5]
  2. set1 = set(num_list)
  3. set1.add(0)
  4. set1.add(1)
  5. set1.remove(3)
  6. set1.pop()
  7. set1.discard(3)
  8. s1 = {1, 2, 3}
  9. s2 = {3, 4, 5}
  10. s3 = s1.difference(s2) # 差集{1,2} 等于s1-s2
  11. s3 = s1.intersection(s2) # 交集{3} s1 & s2
  12. s3 = s1.union(s2) # 并集 {1,2,3,4,5} s1 | s2
  13. print(s3)

image.png

7.3、集合推导式

8、for迭代遍历

  1. user1 = {
  2. "name": "lisi",
  3. "age": 18,
  4. "male": True,
  5. "weight": 76.5
  6. }
  7. user2 = {
  8. "name": "lisi2",
  9. "age": 18,
  10. "male": True,
  11. "weight": 76.5
  12. }
  13. user3 = {
  14. "name": "lisi3",
  15. "age": 18,
  16. "male": True,
  17. "weight": 76.5
  18. }
  19. user = [user1, user2, user3]
  20. for u in user:
  21. if u["name"] == "lisi4":
  22. print(u)
  23. print("找到了")
  24. break
  25. else:
  26. print("没有找到!")

注意:for可以跟else组合,如果通过break退出for循环,就不会执行else语句,正常循环结束会执行else语句