1.input()函数
- input()可以接收从控制台输入的内容(以回车为结束标志)
- input函数会阻塞线程,程序执行到input的时候就会停下来,等待输入完成
- 接收到的数据是以字符串的形式返回的(python2.x中输入的是数字的时候,可能返回int型或者是浮点型,Python3.x中返回的全是str型)
练习:猜数字游戏
随机产生一个1-100的整数,输入的数字如果和产生的随机数是一样的,就提示才对,并结束游戏,如果输入的数大于或者小于随机数,就提示输入的数字偏大或则偏小,然后从新输入
import random
mul1=random.randint(1,100)
mul2=input("请输入猜测的数字")
count=0
while 1:
count+=1
mul2 = int(mul2)
if mul1==mul2:
print("恭喜你猜正确")
if count<7:
print('大神,你运气贼好')
elif count<20:
print('还不赖嘛')
else:
print('快去找妹子充会儿电吧')
break
elif mul1>mul2:
print('抱歉,你猜的数字小了')
mul2=input('请重新输入你的猜测')
elif mul1<mul2:
print('抱歉,你猜的数字大了')
mul2 = input('请重新输入你的猜测')
结果:
请输入猜测的数字50
抱歉,你猜的数字小了
请重新输入你的猜测75
抱歉,你猜的数字小了
请重新输入你的猜测85
抱歉,你猜的数字小了
请重新输入你的猜测90
抱歉,你猜的数字大了
请重新输入你的猜测88
恭喜你猜正确
大神,你运气贼好
2.列表
列表、字典、元组、集合都是序列,都是容器类型的数据类型
列表:用来存储多个数据的一种数据类型,存储的单个数据叫元素
特点:有序的、可变的(内容的个数和值是可变的)、元素可以是任何类型的数据
列表的值:用[]将列表元素括起来,元素间用逗号隔开。[]-->空列表
1)声明列表
# 声明列表
list1=[3,'dfs',4.5,5,[1,2,3]]
print(list1[4][1])
list2=[]#空列表
print(list2,list1,sep='_')
chr='djfdkhgaslj'
# 将其他类型的数据转成列表
list3=list(chr)
print(list3)
list4=list(i for i in range(10))
print(list4)
list5=list(i for i in range(10) if i%3!=0)
print(list5)
结果:
2
[]_[3, 'dfs', 4.5, 5, [1, 2, 3]]
['d', 'j', 'f', 'd', 'k', 'h', 'g', 'a', 's', 'l', 'j']
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 4, 5, 7, 8]
2)获取列表的元素
列表中的每个元素对应一个下标:0-列表长度-1,-1到-列表长度
- 获取单个元素:列表名[下标]、下标不能越界
- 获取部分元素
列表名[开始下标:结束下标]:获取从开始下标,到结束下标前一个位置的所有元素,结果是一个列表
列表名[开始下标:结束下标:步进]:从开始下标,每次下标值加步进获取下一个元素,直到结束下标前一个位置为止 - 起始下标和结束下标都可以缺省
开始下标缺省: 如果步进是正数,就从开始取到结束下标前一个为止。如果步进是负数,就从列表最后一个元素开始获取元素直到结束下标前一个为止
结束下标缺省:如果步进是正数,就从开始下标开始获取元素直到列表最后。如果步进是负数,就从开始下标开始向列表开头获取元素直到列表最开头
列:
names=['鸣人','天明','项羽','曹尼玛']
print(names[1],names[-3])
print(names[1:3],names[-3:-1],names[-4:-1:2])
结果:
天明 天明
['天明', '项羽'] ['天明', '项羽'] ['鸣人', '项羽']
- 一个一个的获取列表元素
for循环
for item in list5:
print(item)
print('========')
结果:
21
43
4535
54
665
46
557
5
========
while循环
num=0
while num<len(list5):
print(list5[num])
num+=1
结果:
21
43
4535
54
665
46
557
5
3) 获取列表的长度
函数len(列表)
list5=[21,43,4535,54,665,46,557,5]
print('长度为%d'%(len(list5)))
结果:
长度为8
3.添加列表元素
1)append()函数
格式:列表.append(元素)
在列表的末尾添加一个元素
skills=[]
skills.append('炁体源流')
print(skills)
skills.append('拘灵遣将')
print(skills)
结果:
['炁体源流']
['炁体源流', '拘灵遣将']
2) insert()函数
格式:列表.insert(index(下标),元素)
在列表中指定位置并插入到它前面
index可以越界,将值插入到列表的两边
skills.insert(1,'通天箓')
print(skills)
结果:
['炁体源流', '通天箓', '拘灵遣将']
3)+
格式:列表1+列表2
将列表2中的元素和列表1中元素合并创建一个新的列表
str=[1,2,3]
new_skills=skills+str
print(new_skills)
结果:
['炁体源流', '通天箓', '拘灵遣将', 1, 2, 3]
练习:从控制台输入10个学生的成绩,然后保存到一个列表中
list6=[]
for x in range(10):
mul1=int(input("你好,你是第%d名学生,请输入成绩:"%(x+1)))
if 0<=mul1<=100:
list6.append(mul1)
else:
mul1 = int(input("输入错误,请从新输入:"))
list6.append(mul1)
print(list6)
结果
你好,你是第1名学生,请输入成绩:45
你好,你是第2名学生,请输入成绩:65
你好,你是第3名学生,请输入成绩:75
你好,你是第4名学生,请输入成绩:86
你好,你是第5名学生,请输入成绩:87
你好,你是第6名学生,请输入成绩:43
你好,你是第7名学生,请输入成绩:76
你好,你是第8名学生,请输入成绩:97
你好,你是第9名学生,请输入成绩:87
你好,你是第10名学生,请输入成绩:34
[45, 65, 75, 86, 87, 43, 76, 97, 87, 34]
4.删除列表元素
1)del语句
- del可以直接删除任何数据
- del 列表[下标] :删除列表中指导下标的元素
- 注意:不管是添加元素还是删除元素,列表都会重新分配下标
删除列表时,下标不能越界
films=['战狼','杨门女将','逃学威龙','赌神']
del films[1]
print(films)
结果:
['战狼', '逃学威龙', '赌神']
2)remove()方法
- 列表.remove(元素):删除列表中的指定元素(删除第一个匹配项的元素)
- 注意:如果要删除的元素不再列表中会报错(ValueError)
films+=films
films.remove('逃学威龙')
print(films)
结果:
['战狼', '赌神', '战狼', '逃学威龙', '赌神']
3)pop方法
*列表.pop():将列表中的最后一个元素取出来
*列表.pop(下标):将列表中指定下标的元素取出来
*注意:del和remove删除是直接将元素删除,以后不能在操作这个元素而pop则是将元素移除列表,可以将移出列表的元素保存,再进行操作
film2=films.pop(3)
print(films.pop(),film2)
结果:
赌神 逃学威龙
练习:
方法一:
scores=[23,45,78,32,90,89,1]
nul=[]
mul=-1
for x in scores:
if x<60:
nul.append(1)
else:
nul.append(x)
for y in nul:
mul+= 1
if y==1:
del scores[mul]
mul-=1
print(scores)
方法二:
scores1=[23,78,32,90,89,1,45]
scores2=scores1.copy()
for x in scores2:
if x<60:
print(x)
scores1.remove(x)
print(scores1)
方法三:
for item in scores[:]:
if item<60:
scores.remove(item)
print(scores)
结果:
[78, 90, 89]
[78, 90, 89]
[78, 90, 89]