Python_ Day 2
数据类型
——整数(int类) 1 99 90
——布尔值(bool类)True False
——字符串 (str类) ” 西瓜” “南瓜 “
——列表(list类)可变的容器 App = [“AA”,”BB”, “12356”] [11,52,33,56,79,”abc”]
——元组(tuple类)(”ABC”, “安保处”, “侃侃而谈”)
——字典(dict类){“name”, “age”,”degree”,”address”} {“app”,”apc”,”def”,”ccd”}
======>相同类的值(指定类的对象)具有相同的功能,功能保存在类中(只有1份)
补充
1.运算符—— in; not in
value = “我是中国人”
# 判断‘中国’是否在value锁止带的字符串中。‘中国’是否是value 所只带的字符串的子序列
v1 = “中国” in value
eg.
content = input ("请输入内容") if "退钱" in content: print ("包含敏感词汇") else: print (content)
2.优先级
符号优先级大于not
eg:
(1)用户3次登录并提示次数:(n=1,+1; n=2,-1)
num = 3 while num > 0: user_name = input ("请输入用户名:") password = input ("请输入密码:") num = num - 1 if user_name == "alex" and password == "alex123456": print ("登录成功") break else: print ("登录失败,你的剩余次数为:%d次" % (num,))
(2)猜年龄(3次):如果3次,提示是否继续,Y——继续;N——跳出
n = 3 while n > 0: age = int (input ("请输入年龄:")) if age != 26: print ("猜错了") n = n - 1 if n == 0: content = input ("3次机会已用完,是否继续玩游戏(N/Y):") if content.upper () == "N": break elif content.upper() == "Y": n = 3 else: input ("输入错误,请重试!") else: print ("猜对了") break
三、今日学习内容
1.整数型(int)
数字的占位符 %d
整数除法保留所有
v=2 v.bit_length() #二进制长度
2.布尔值
False: 0 和 空字符串
True: 其他
3.字符串
A.upper(), lower() # 用于定义验证码,部分大小写
B.isdigit()
#用于判断输入的字符串里字数的个数
val.isdigit () # 结果为布尔类型
C.strip(); lstrip();rstrip()#清除空格
D.replace (‘被替换的字符/子序列’, ‘要替换的内容’)
.replace (‘被替换的字符/子序列’, ‘要替换的内容’,1) # 替换第1个
E.split(‘根据什么东西分割’);split(‘根据什么东西分割’,1),rsplit ();切割后成‘列表’
总结:
①字符串的几个关键作用(upper/lower; isdigi; strip/lstrip/rstrip; split/rslipt; replace)
eg.
check_code = "iyKY" meg = "请输入验证码%s: % (check_code)," code = input (meg) if code.upper () == check_code.upper(): print ("正确") else: print ("错误")
### 10086 判断是否为数字:num.isdigit () 判断input 是否为数字 falg = num.isdigit () #结果为bool值
###去掉两边字符串的空格 user=input('pls enter: ') user.rstrip () #去掉右边空格 user.lstrip () #去掉左边空格 user.strip () #去掉两边空格
###输入的姓名全部大写 print ('---》'(user.strip()).upper '《---')
###字符串替换 meg = input ('pls enter: ') print (meg.split(','))# 根据逗号进行切割,输入列表 print (meg.rsplit(',',1))# 从左往右切割,切割1次
②len,计算长度(计算字符串中的字符个数)and 索引值
###索引值(从0开始) V = 'prettyboy' v1= v[0] v2= v[1] ###计算字符串长度,索引取值: len() v = 'alex' print (len(v)) eg. text = input ('pls enter: ') index_len = len(text) index=0 while True: val = text [index] #索引取值,从0开始;负数从后向前取值 print (val) if index == index_len - 1: break index+=1
③切片(从0开始)
v= 'prettyboy' v1 = v[2:4] 注意:取头不取尾 ###字符串切片 根据索引值取值: v= 'prettyboy' v1=v[2,3] # 取前不取后 v2=v[3:] #索引3后面的全部 v3=v[:-1]#从倒数第二到前面所有 data = input ('pls enter name: ') 方法一: data[-2:0] #取后面2个字符 方法二: data[total_len-2:total_len] # total_len = len(data)
让用户输入任意字符串,获取字符串后计算字符串中有多少个数字 total = 0 text = input ("请输入内容:") index_len = len(text) index = 0 while True: val = text [index] flag = val.isdigit() if flag: total = total + 1 elif index == index_len - 1: break index += 1
4.列表
——可变容器 list
V=[11,22,25,41,"江湖"]
(1)为当前对象提供的功能
A.在列表的尾部追加一个值(修改本身的值)
V.append ("宝剑") print (V)
v= [] while True: name = input ("pls enter name: ") if name.lower () == "q": break v.append (name) print (v)
B.在指定的位置插入数据
v=[11,21,33,15,"辣椒"] v.insert(3,"洋葱") print(v)
C.替换或修改
v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] # 替换1条 v[3] = "茄子" print(v) # 替换几条 v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] v[1:3] = ["西瓜","南瓜","白菜"] print(v)
D.删除
# 删去1条 v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] del v[2] print(v) # 删去2以上条 v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] del v[1:3] print(v)
E.转置
v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] v.reverse() print(v)
(2)公共用处
F.通过索引取值(与字符串相同)
# 取单个值 v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] print (v[1]) # 切片 v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] print (v[0:3:2])
G.计算列表长度
v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐"] v0=len(v) print (v0)
H.for循环
v= ["鸡蛋","西红柿","土豆","青菜","黄瓜","豆腐","1"] for i in v print(i)
#补充~
列表中的元素可以是:数字,字符串,布尔值,列表
App = [11,21,[6,5,8],72,True,"西瓜",90] v = len(App) print (v)
App = [11,21,[6,"1840",8],72,True,"西瓜",90] val = App [2][1][-1] print(val)
App = [11, 21, [6, "1840", 8], 72, True, "西瓜", 90] App[5][0] = "南" print(App) # 错误,字符串不支持修改!!!
App = [11, 21, [6, "1840", 8], 72, True, "西瓜", 90]
App[5] = "南瓜"
print(App)
# 字符串 replace
App = [11, 21, [6, "1840", 8], 72, True, "西瓜", 90] Val = App[5].replace("西","南") App[5] = Val print(App)
5.元组
——不可变的容器,子项目不可改变
(1)为当前对象提供的功能
无
(2)公共用处
A.长度
val=len(v) print (val)
B.索引取值
print (v[0]) print (v[0:2]) print (v[0:4:2]) 步长
C.for循环
for i in v print i
D.元组也可以进行嵌套(子不能替换,孙能替换)
val = (11,22,[1,5,9],19,('a','s','r'),63) val[2][1] = 'ddd' print (val) ========================= val[2].append('hjk') print (val)
6.字典
(1)为当前对象提供的功能
val = {
key:value
}
键值对
A. 根据键获取值
val= v.get('k1') print (val)
B.与for 循环结合使用
val=v.keys() print (val) ============= val=v.values() print (val) ============= val=v.items() print (val)
(2)公共用处
C.获取字典长度(键值对的个数)
val = len(v) print (val)
D.索引
——取值——
val = v['k1'] print(val) 建议使用‘get’取值,不会报错
——字典内是无序的,所以不存在步长——
——修改:存在就修改,不存在就增加新的键值对——
E.删除
del v[k1]
F.for循环
(3)字典嵌套
val = { 'k1':123, 'k2':"adcf", 'k3':True, 'k4':[12,56,43], 'k5':(1,2,5,6), 'k6':{ 'kk1':'vv1', 'kk2':'vv2' }, 'k7':[1,3,(8,9,5,6),{'kkk1':'vvv1'},"够了"] } # 删去K6里面的kk2 # del val['k6']['kk2'] # k7里面的元组换成‘666’ # val['k7'][2]=666 # k7里面字典再添加kkk2 (修改——存在就修改;不存在就增加新的键值对) val['k7'][3]['kkk2']= 'vvv2' print (val)
user_list =[ {'name':'老铁','age':'21'}, {'name':'老张','age':'30'}, {'name':'老王','age':'28'}, {'name':'老哥','age':'22'}, ] n=input('请输入姓名:') m=input('请输入年龄:') ABB={'name':n,'age':int(m)} user_list.append(ABB) print(user_list) #通过循环,是打印出来的姓名与年龄好看一点 user_list =[ {'name':'老铁','age':'21'}, {'name':'老张','age':'30'}, {'name':'老王','age':'28'}, {'name':'老哥','age':'22'}, ] for item in user_list: print(item['name'],item['age'])