太原今天最新通知,360如何做网站优化,一流的网站建设流程图,专门做民宿的网站有哪些python其他知识目录 1、一道题#xff0c;选择商品的序号。程序员和用户各自面对的序号起始值 如有变量 googs [汽车,飞机,火箭] 提示用户可供选择的商品#xff1a; 0,汽车1,飞机2,火箭用户输入索引后#xff0c;将指定商品的内容拼接打印#xff0c;如#xff1a;用户输… python其他知识目录 1、一道题选择商品的序号。程序员和用户各自面对的序号起始值 如有变量 googs [汽车,飞机,火箭] 提示用户可供选择的商品 0,汽车1,飞机2,火箭用户输入索引后将指定商品的内容拼接打印如用户输入0则打印 您选择的商品是汽车。 goods[汽车,飞机,大炮]
for i in range(0,len(goods)):print(i,goods[i])
numinput(请输入要选择的商品序号)
numint(num)
text您选择的产品是%s%(goods[num])
print(text)
-------------结果
0 汽车
1 飞机
2 大炮
请输入要选择的商品序号0
您选择的产品是汽车 变形1,汽车2,飞机3,火箭用户输入索引后将指定商品的内容拼接打印如用户输入1则打印 您选择的商品是汽车 goods[汽车,飞机,大炮]
for i in range(0,len(goods)): #索引是从0开始print(i1,goods[i]) #用户看的数字索引1显示
numinput(请输入要选择的商品序号) #用户输入的是看的数字做索引要-1
numint(num)-1
text您选择的产品是%s%(goods[num])
print(text)
------------结果
1 汽车
2 飞机
3 大炮
请输入要选择的商品序号1
您选择的产品是汽车 不改变原代码插入一个数字实现的思想 goods[汽车,飞机,大炮]
goods.insert(0,0) #列表前面插入一个字符
for i in range(1,len(goods)): #索引从1开始print(i,goods[i])
numinput(请输入要选择的商品序号)
numint(num)
text您选择的产品是%s%(goods[num])
print(text)
----------------结果
1 汽车
2 飞机
3 大炮
请输入要选择的商品序号1
您选择的产品是汽车 2、#1,(1)(1,)()之间类型的区别 v11
v2(1)
v3(1,)
v4()
print(type(v1),type(2),type(v3),type(v4))
------------结果
class int class int class tuple class tuple
# 元组记得加逗号。小括号是元组小括号只有一个数是数字小括号一个数字加个逗号才是元组。
[(1),(2),(3)]等价于[1,2,3] 3、数据类型总结 int py2/py3 除法 强制转换 int(字符串) 【重要】 int(布尔值)bool 强制转换 bool(整数) - bool(1)/.. - bool(0) bool(字符串) - bool(xx) -- bool() bool(列表) - bool([]) -- bool([]) bool(元组) - bool(()) -- bool(空元组) v1 bool(0) v2 bool() v3 bool([]) v4 bool(()) print(v1,v2,v3,v4) # Falsestr 独有功能upper/lower/split/strip/replace/isdigit/startswith/endswith/format/join/encode 公共公共 len 索引 切片 步长 for循环 删除【无】 更新【无】 强制转换 str(999) # 999 str(True) # True str([唐开发,李忠伟]) # [唐开发,李忠伟] -- v2 .join([唐开发,李忠伟]) str([唐开发,李忠伟])list 独有功能append/insert/pop/remove/clear/ extend 公共功能 len 索引 切片 步长 for循环 删除 更新 强制转换 list(asdfadfasfdadfasfd) v1 list(asdfadfasfdadfasfd) print(v1) list( (11,22,33,44,) ) v1 list( (11,22,33,44,) ) print(v1)tuple 独有功能【无】 公共功能 len 索引 切片 步长 for循环 删除【无】 更新【无】 强制转换 tuple(adfadfasdfasdfasdfafd) tuple([11,22,33,44]) v1 list(asdfadfasfdadfasfd) print(v1) v1 list( (11,22,33,44,) ) print(v1) v1 tuple(adfadfasdfasdfasdfafd) print(v1)总结常见的类型转换 # 字符串转数字 # 数字转字符串 # 列表转元组 # 元组转列表 # 其他转bool时只有0 “” [] () 4、#字符串是数字且有空格先去掉空格才能int()吗# li[ 8 , 12 ]
mcwli[0]li[1]
mcw2int(li[0])int(li[1])
mcw3int( 5 )int( 11 )
mcw4int( 12 )
print(mcw)
print(mcw2,mcw3,mcw4)
--------------结果8 12
20 16 12 结论字符类型的数字带有空格时使用int()函数转化为数字时无需提前去空格。由上可得转化的过 程中应该是做了去空格的操作了。 5、字典 http://www.runoob.com/python/python-dictionary.html 5.1字典简单理解 字典是另一种可变容器模型且可存储任意类型对象。 字典的每个键值 keyvalue 对用冒号 : 分割每个键值对之间用逗号 , 分割整个字典包括在花括号 {} 中 ,格式如下所示 d {key1 : value1, key2 : value2 } 键一般是唯一的如果重复最后的一个键值对会替换前面的值不需要唯一。 dict {a: 1, b: 2, b: 3} dict[b] 3 dict {a: 1, b: 3} 值可以取任何数据类型但键必须是不可变的如字符串数字或元组。 一个简单的字典实例 dict {Alice: 2341, Beth: 9102, Cecil: 3258} 也可如此创建字典 dict1 { abc: 456 } dict2 { abc: 123, 98.6: 37 } 5.4、#添加键值对以及定义空字典添加键值对update (增) dic{}
dic[name]mcw
dic[age]18
print(dic)------------结果{name: mcw, age: 18} #原有字典.update(另一个字典) 不存在的键添加存在的键覆盖 userinfo{username:mcw,password:123456}userinfo.update({age:18,password:654321})print(userinfo)---------------结果{username: mcw, password: 654321, age: 18} 5.5#字典删除元素pop/del删 dic{name:mcw,age:18,hobby:music} #pop删除
dic.pop(hobby)
print(dic)
-----------结果
{name: mcw, age: 18} #del删除 userinfo{username:mcw,password:123456}del userinfo[password]print(userinfo)------------------结果{username: mcw} 5.3字典的修改存在就修改/不存在就增加改 ---value 是1 1不一样的注意 userinfo{username:mcw,password:123456} userinfo[username]xiaoma print(userinfo) -------------结果 {username: xiaoma, password: 123456} #多个键值修改 userinfo{username:mcw,password:123456}userinfo.update({username:xiaoma,password:654321})print(userinfo)--------------------结果{username: xiaoma, password: 654321} 5.2、#取字典元素查 userinfo{username:mcw,password:123456}
print(userinfo[username]) #获取字典中单个键的值
print(userinfo.keys()) #keys获取字典中所有的键
print(userinfo.values()) #valuses获取字典中所有的值
------结果
mcw
dict_keys([username, password])
dict_values([mcw, 123456]) print(type(userinfo.values()))---------结果class dict_values userinfo{username:mcw,password:123456} #打印整个字典
print(userinfo)
--------------结果
{username: mcw, password: 123456}userinfo{username:mcw,password:123456}
for v1,v2 in userinfo.items(): #items获取所有的键值对
print(v1,v2)
--------------结果
username mcw
password 123456for循环默认只循环字典中的键
userinfo{username:mcw,password:123456}
for i in userinfo:print(i)
-------------结果
username
password报错接收的多了
for item,v in userinfo:print(item,v)
--------结果
for item,v in userinfo:
ValueError: too many values to unpack (expected 2) #字典.get(键)“字典名[键]”来取没有的键会报错。 “字典.get(键)”、“字典.get(键键不存在时的返回值)”同样能获取字典的值字典中没有这个键的时候指定返回的值默认为none特殊的数据类型占内存空间的是空的地址转为bool为false 建议尽量用get取字典这样可以对键是否存在先做个判断 userinfo{username:mcw,password:123456}
result1userinfo.get(username)
result2userinfo.get(age)
print(result1,result2)
---------------结果
mcw None使用形式
resultuserinfo.get(键)
if resultNoneprint(键不存在) 5.5、#字典多行美观显示注意不要忘记逗号 userinfo{username:mcw,password:123456
}
print(userinfo)
---------结果
{username: mcw, password: 123456} 5.6、#字典和列表嵌套构建用户登录的案例 user_list[]
while True:uinput(请输入用户)if uN:breakpinput(请输入密码)v{}v[user]uv[pwd]puser_list.append(v)
print(user_list)
rec_str1input(请输入用户)
rec_str2input(请输入密码)
flag0
for i in user_list:if i[user]rec_str1 and i[pwd]rec_str2:flag1
if flag1:print(请进行登录)
else:print(登录失败!)完善后
user_list[]
while True:uinput(请输入用户)if uN:breakpinput(请输入密码)v{}v[user]uv[pwd]puser_list.append(v)
print(user_list)
rec_str1input(请输入用户)
rec_str2input(请输入密码)
message登录失败
for i in user_list:if i[user]rec_str1 and i[pwd]rec_str2:message登录成功break
print(message)-----------------结果请输入用户mcw请输入密码123请输入用户xiaoma请输入密码123请输入用户N[{user: mcw, pwd: 123}, {user: xiaoma, pwd: 123}]请输入用户mcw请输入密码123登录成功 5.7、单变量和双变量接收字典items()返回值 单变量和双变量接收字典items()返回值单变量是循环接收字典键值对形成的元组双变量一个接收键 一个接收值。 ---
v43
a,bv.split()
print(a,b)
------结果
4 3v43
av.split()
print(a[0],a[1])
------------结果
4 3userinfo{username:mcw,password:123456}
for i in userinfo.items():print(i,type(i))
-------结果
(username, mcw) class tuple
(password, 123456) class tupleuserinfo{username:mcw,password:123456}
for k,v in userinfo.items():print(k,v,type(k),type(v))
------------结果:
username mcw class str class str
password 123456 class str class int 5.8生成列表中每个元素都是相同键的字典 两个列表元素一个当字典的键另一列表每个元素都是字典分隔开来的值。合并成列表中有多个字典元素的方法. li1[name,age,hobby]
li2[mcw,18,study,xiaoma,19,music,yh,10,eat]
print([[li1[j]:li2[i].split(,)[j] for j in range(0,len(li1))] for i in range(0,len(li2))])
mcw[{li1[j]:li2[i].split(,)[j] for j in range(0,len(li1))} for i in range(0,len(li2))]
print(mcw)
print(type(mcw[0]))
----------------结果
[[name:mcw, age:18, hobby:study], [name:xiaoma, age:19, hobby:music], [name:yh, age:10, hobby:eat]]
[{name: mcw, age: 18, hobby: study}, {name: xiaoma, age: 19, hobby: music}, {name: yh, age: 10, hobby: eat}]
class dict 列表元组嵌套。加一个字典嵌套意义何在呢int/bool/str list/tuple/dict可以相互嵌套 字典值能放各种 所有都能当字典键 可以有元组数字布尔值字符串 不可以字典列表 可hash的可以当key字典和列表是可变的不可hash所以不能当键。 #元组 列表有序字典无序Python3.6之后字典有序了。转载于:https://www.cnblogs.com/machangwei-8/p/10643474.html