初识Python.day2
一. python运算符
算数运算符
比较运算符
赋值运算符![](https://img2018.cnblogs.com/blog/1527225/201811/1527225-20181114164405625-1080283204.png)
逻辑运算符
成员运算符
二. Python基础数据类型
1. python字符串总结
1 # 首字母变大写 2 # a1 = "jiuya" 3 # print(a1.capitalize()) 4 5 # # 内容居中, 6 # a1 = "jiuya" 7 # ret = a1.center(20,'*') 8 # print(ret) 9 10 # 计算字符串中的子序列个数 11 # a1 = "my name is mike" 12 # # ret = a1.count("m") 13 # # 制定范围子序列个数 14 # ret = a1.count("m",0,6) 15 # print(ret) 16 17 # 判断是否以什么结尾,支持子序列是否以什么结尾.获取大于等于0,小于2的位置 18 # a1 = "hello" 19 # ret = a1.endswith('o') 20 # ret2 = a1.endswith('e',0,2) 21 # print(ret2) 22 23 # # 判断是否以什么开头, 24 # a1 = "alex" 25 # ret = a1.startswith('a') 26 # print(ret) 27 28 # 制表符,\t代表一个tab键 29 # find查找,找到返回找到的位置,找不到返回-1 30 # s = "alex hello" 31 # print(s.find("b")) 32 33 # 字符串的格式化,只能从开始,按照顺序更新 34 # s = "hello {0},age {1}" 35 # print(s.format('jiu',23)) 36 37 # 寻找子序列的位置,如果没有找到则报错 38 # index 39 40 # # 判断是否都是字母 41 # a1 = "jiu" 42 # print(a1.isalpha()) 43 # 44 # # 判断是否都是数字 45 # a1 = "123" 46 # print(a1.isalnum()) 47 # 48 # # 判断是否都是小写 49 # a1 = "jiu" 50 # print(a1.islower()) 51 # 52 # # 判断是否都是大写 53 # a1 = "JIU" 54 # print(a1.isupper()) 55 # 56 # # 判断是否是标题,首字母大写 57 # a1 = "Jiu" 58 # print(a1.istitle()) 59 # 60 # # 连接,join.循环每个元素,通过特殊符号连接 61 # li = ["jiu","ya","chun"] 62 # s = "*".join(li) 63 # print(s) 64 # 65 # # 去除空格 66 # s = " alex " 67 # # 左边去空格:new = s.lstrip() 68 # # 右边去空格:new = s.rstrip() 69 # # 两边去空格:new = s.strip() 70 # 71 # # 分割,指定分隔符分割,添加到一个元祖中 72 # # 默认从左往右,rpartition从右往左找 73 # s = "alex SB alex" 74 # ret = s.partition('SB') 75 # print(ret) 76 # 77 # # 替换,从左往右替换几次 78 # s = "alex SB alex" 79 # ret = s.replace("al","BB",1) 80 # print(ret) 81 # 82 # # 分割,以默认分割,分完不带分割符.以找到的第几处为分隔符 83 # s = "alexalex" 84 # ret = s.split("e",1) 85 # 86 # # 变成标题 87 # s = "the school" 88 # ret = s.title() 89 # print(ret) 90 91 # # 索引 92 # s = "alex" 93 # print(s[0]) 94 # 95 # # 长度 96 # s = "abcd" 97 # print(len(s)) 98 99 # 切片,遵循 大于等于,小于的规则 100 # s = "alex" 101 # print(s[0:1]) 102 # print(s[-3:-1]) 103 104 # # while 实现循环打印字符串中的每个元素 105 # start = 0 106 # s = "alex" 107 # while start < len(s): 108 # temp = s[start] 109 # start += 1 110 # print(temp) 111 112 # # for循环实现字符串打印,碰到e不打印 113 # s = "alex" 114 # for I in s: 115 # if I == "e": 116 # continue 117 # print(I)
2. 列表
1 ##### 列表: 2 # 索引,正索引从0开始,负索引从-1开始 3 # name_list = ["jiu","niu","liu"] 4 # print(name_list[0]) 5 6 # # 切片 7 # print(name_list[0:2]) 8 9 # # len 长度 10 # print(len(name_list)) 11 12 # # for 循环 13 # for i in name_list : 14 # print(i) 15 16 # # 获取某个值的索引 17 # print(name_list.index("liu")) 18 19 # # 追加 20 # name_list.append("ling") 21 # print(name_list) 22 23 # # 统计元素次数 24 # print(name_list.count('jiu')) 25 # 26 # # 扩展,批量添加 27 # num_list = ["11","22","33"] 28 # name_list.extend(num_list) 29 # print(name_list) 30 31 # # 指定位置插入元素,位置 + 元素 32 # name_list.insert(2,"SB") 33 # print(name_list) 34 35 # # 移除最后一个元素,并赋值给变量 36 # a1 = name_list.pop() 37 # print(a1) 38 39 # # 移除指定元素,左往右第一个 40 # name_list.remove('jiu') 41 # print(name_list) 42 43 # # 反转 44 # name_list.reverse() 45 # print(name_list) 46 47 # 指定位置删除 48 # name_list = ["jiu","niu","liu"] 49 # print(name_list) 50 # del name_list[0] 51 # del name_list[1:3] 52 # print(name_list)
53 #
53 # 修改列表指定元素
54 # list[index] = value
55 #
56 # list + list
57 # 连接列表,产生新列表,原列表不变
58 #
59 # list[] * n
60 # list1 = ["你"]
61 # list1 * 3
62 # ["你","你","你"]
63 # 排序
64 # sort(key=None,reverse=False)
65 # 对列表进行排序,就地修改,默认升序,key为一个函数,指定key如何排序
66 # 补充:
列表删除
remove(value) 从左往右匹配查找第一个匹配的值并删除 !!!遗忘掉!!!
pop(index) 不指定索引则删除最后一个 默认用此方法
3.元祖
1 ##### 元祖 2 # 元祖和列表几乎是一样的,元祖不能修改。若以后创建一个集合, 3 # 不想让人修改可以用元祖,想让人修改,可以用集合 4 5 # 切片 6 # 索引 7 # len 8 # for循环 9 # 个数count
4. 字典
1 ###字典,字典的每个元素都是一个键值对 2 user_info = { 3 "name":"alex", 4 "age":23, 5 "gender":"M" 6 } 7 # 索引 8 # print(user_info["name"]) 9 10 # # 循环,默认输出的是keys值 11 # for I in user_info: 12 # print(I) 13 # print(user_info.keys()) # 输出键 14 # print(user_info.values()) # 输出值 15 # print(user_info.items()) # 输出键值 16 17 # 清除所有内容 18 # user_info.clear() 19 # print(user_info) 20 # 21 # # get 根据key获取值,如果key不存在,可以指定默认值,和下面删除 pop()类似功能 22 # val = user_info.get('name') 23 # print(val) 24 # # 索引取值时,如果不存在则会报错。推荐用get。指定默认值处理方式 25 # val = user_info.get('age1',40) 26 # print(val) 27 28 # # 检查字典中指定key是否存在 29 # ret = 'name' in user_info.keys() 30 # print(ret) 31 32 # # update 批量更新键值对 33 # print(user_info) 34 # test = { 35 # "a1":"123", 36 # "a2":"456" 37 # } 38 # user_info.update(test) 39 # print(user_info) 40 41 # # 删除指定索引键值 42 # del user_info["name"] 43 # print(user_info )
44 # 删除指定键,返回值是一个元祖
45 # a = dic.pop('age')
46 #
47 # 可删除不存在键,自定义设置返回值
47 # print(dic.pop('high','没有此键'))
48 # 分别赋值思想,则可以分别打印字典的键,值
49 # for a,b in dic.items():
print(a,b)
5. 补充
# # enumerate 默认会在列表前面加一行索引数字,默认从0开始计数,列表,字典等都可用 # li = ["电脑","鼠标","键盘"] # for key,value in enumerate(li,1): # print(key,value) # # inp = input("请输入你要的商品:") # num = int(inp) # print(li[num - 1]) # li = ["电脑","鼠标","键盘"] # inp = li.index("鼠标") # print(inp) # range 需要用循环打印出内容,也可以指定跨度 # for I in range(1,10): # print(I) # for I in range(10,1,-2): # print(I) # 用range 循环列表实现enumerate的功能 # li = ["jiu","liu","niu"] # lens = len(li) # # print(lens) # for I in range(0,lens): # print(I,li[I])
三. 练习题
1.元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
1 li = [11,22,33,44,55,66,77,88,99] 2 all = { 3 "k1":[], 4 "k2":[] 5 } 6 for I in li: 7 if I > 66: 8 all["k1"].append(I) 9 elif I < 66: 10 all["k2"].append(I) 11 print(all) 12 感觉此处运用到的一个知识点为:字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
2.查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
1 # for I in li: 2 # if I.startswith('a') or I.startswith('A') and I.endswith('c'): 3 # print(I) 4 # for I in tu: 5 # if I.startswith('a') or I.startswith('A') and I.endswith('c'): 6 # print(I) 7 # for I in dic.values(): 8 # if I.startswith('a') or I.startswith('A') and I.endswith('c'): 9 # print(I)
3.商品选购
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
4.购物车
功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
- 附加:可充值、某商品移除购物车
1 goods = [ 2 {"name": "电脑", "price": 1999}, 3 {"name": "鼠标", "price": 10}, 4 {"name": "游艇", "price": 20}, 5 {"name": "美女", "price": 998}, 6 ]
5.用户交互,显示省市县三级联动的选择
1 dic = { 2 "河北": { 3 "石家庄": ["鹿泉", "藁城", "元氏"], 4 "邯郸": ["永年", "涉县", "磁县"], 5 } 6 "河南": { 7 ... 8 } 9 "山西": { 10 ... 11 } 12 13 }