Python基础知识-5
Posted machangwei-8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础知识-5相关的知识,希望对你有一定的参考价值。
打印0-5之间的偶数
for i in range(0,5,2):
print(i)
for i in range(0,5):
if i%2==0:
print(i)
------------结果:
0
2
4
# 11、利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。
li=[]
for i in range(0,101):
if i%2==0:
li.append(i)
print(li)
----
如有变量 googs = [‘汽车‘,‘飞机‘,‘火箭‘] 提示用户可供选择的商品:
0,汽车
1,飞机
2,火箭
用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。
---
goods=["汽车","飞机","大炮"]
for i in range(0,len(goods)):
print(i,goods[i])
num=input("请输入要选择的商品序号:")
num=int(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(i+1,goods[i]) #用户看的数字,索引+1显示
num=input("请输入要选择的商品序号:") #用户输入的是看的数字,做索引要-1
num=int(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])
num=input("请输入要选择的商品序号:")
num=int(num)
text="您选择的产品是:%s"%(goods[num])
print(text)
----------------结果:
1 汽车
2 飞机
3 大炮
请输入要选择的商品序号:1
您选择的产品是:汽车
4、请用五种方法实现字符串反转 name = "我叫小马过河博客是魔降风云变"(步长、while、for)
#既然字符串可以反转,那么字典,元组,列表怎么反转呢,思考一下
name = "我叫小马过河博客是魔降风云变"
print(name[::-1])
----------以下结果都为:
变云风降魔是客博河过马小叫我
name = "我叫小马过河博客是魔降风云变"
index=0
e_str="" #什么情况定义空字符串,或是列表,元组,字典
while index<len(name):
index += 1
e_str+=name[len(name)-index]
print(e_str)
name = "我叫小马过河博客是魔降风云变"
e_str=""
for index in range(0,len(name)):
e_str+=name[len(name)-index-1]
print(e_str)
name = "我叫小马过河博客是魔降风云变"
e_str=""
for index in range(len(name)-1,-1,-1): #因为字符串索引最大值是字符串长度-1,range()取
左值,所以起始值为len()-1
e_str+=name[index]
print(e_str)
name = "我叫小马过河博客是魔降风云变"
index=len(name)
e_str=""
while index>0:
index-=1
e_str+=name[index]
print(e_str)
#12、13实现正反列表序列
正向序列:
li=[]
for i in range(0,3):
li.append(i)
print(li)
---------结果:
[0, 1, 2]
反向序列
li=[]
for i in range(0,3):
li.insert(0,i)
print(li)
-----------结果:
[2, 1, 0]
#将列表后面的值移到前面
deleted=li.pop
li.append(deleted)
#增加: del 仅仅是删除,pop还能将删除后的赋予给一个变量
# 列表有extend,元组没有,元组不能添加修改的
# 列表extend元组,列表
#join可以指定分隔符给字符串,列表,元组,因为内部会给它for 循环
列表元组元素拼接,"".join(列表或元组)
#
v1=1
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]
#字符串是数字且有空格,先去掉空格才能int()吗#这题要整理
字符串拼接=int()和
---------
内容回顾复制一下他
v=tuple("‘aa‘,‘b‘")
print(v)
("‘", ‘a‘, ‘a‘, "‘", ‘,‘, "‘", ‘b‘, "‘")
----------
1、字典:
http://www.runoob.com/python/python-dictionary.html
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括
号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
#取字典元素:
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])
打印整个字典
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 123456
for循环默认只循环字典中的键
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)
字典的修改:(存在就修改/不存在就增加)---value 是1 "1"不一样的注意
userinfo={"username":"mcw","password":123456}
userinfo["username"]="xiaoma"
print(userinfo)
-------------结果:
{‘username‘: ‘xiaoma‘, ‘password‘: 123456}
#添加键值对以及定义空字典添加键值对
单变量和双变量接收字典items()返回值,单变量是循环接收字典键值对形成的元组,双变量一个接收键
,一个接收值。
---
v="4+3"
a,b=v.split("+")
print(a,b)
------结果:
4 3
v="4+3"
a=v.split("+")
print(a[0],a[1])
------------结果:
4 3
userinfo={"username":"mcw","password":123456}
for i in userinfo.items():
print(i,type(i))
-------结果:
(‘username‘, ‘mcw‘) <class ‘tuple‘>
(‘password‘, 123456) <class ‘tuple‘>
userinfo={"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‘>
===
列表,元组嵌套。加一个字典,嵌套,意义何在呢
int/bool/str list/tuple/dict可以相互嵌套,
#字典多行美观显示,注意不要忘记逗号
userinfo={
"username":"mcw",
"password":123456
}
print(userinfo)
---------结果:
{‘username‘: ‘mcw‘, ‘password‘: 123456}
字典值能放各种 所有都能当
键 :可以:元组,数字,布尔值,字符串
不可以:字典,列表 可hash的可以当key,字典和列表是可变的,不可hash,所以不能当键。
#字典和列表嵌套构建用户登录的案例
user_list=[]
while True:
u=input("请输入用户:")
if u=="N":
break
p=input("请输入密码:")
v={}
v["user"]=u
v["pwd"]=p
user_list.append(v)
print(user_list)
rec_str1=input("请输入用户:")
rec_str2=input("请输入密码:")
flag=0
for i in user_list:
if i["user"]==rec_str1 and i["pwd"]==rec_str2:
flag=1
if flag==1:
print("请进行登录")
else:
print("登录失败!")
完善后:
user_list=[]
while True:
u=input("请输入用户:")
if u=="N":
break
p=input("请输入密码:")
v={}
v["user"]=u
v["pwd"]=p
user_list.append(v)
print(user_list)
rec_str1=input("请输入用户:")
rec_str2=input("请输入密码:")
message="登录失败!"
for i in user_list:
if i["user"]==rec_str1 and i["pwd"]==rec_str2:
message="登录成功!"
break
print(message)
#元组 列表有序,字典无序,Python3.6之后字典有序了。
以上是关于Python基础知识-5的主要内容,如果未能解决你的问题,请参考以下文章