一、输入和输出
1.输出函数:print()
- 默认每一个print()函数,输出完内容后会输出一个换行。
- 一个print()函数输出多个内容的时候,内容之间是用空格隔开的。
- print(str1, end=''),end=用来设置结束标志(默认是end='\n')
- print(str, sep='')sep=用来设置多个内容之间的间隔符(默认是sep=' ')
示例:
print('test1', 100, end='\t', sep=',')
print('test2')
结果:
test1,100 test2
2.输入函数:input()
- input()函数可以接收从控制台输入的内容(以回车结尾)
- input()函数会阻塞线程,程序执行到input()时,会停下,等待用户输入,输入完成后继续执行程序
- 接收到的数据是以字符串的形式返回的。
- input(str)在input()加入参数,会在输入时打印参数,输入内容在打印内容后。
I/O示例:
猜数字
a.随机产生1-100的整数
b.输入的数字如果和产生的随机数一样,则提示猜对了,并结束游戏
c.输入输入的数字和产生的随机数不同,则提示用户偏大或者偏小,并提示用户重新输入
import random
answer = random.randint(1,100)
count = 0
while True:
guess = int(input('现在产生了一个100以内的随机数,猜猜看:'))
count += 1
if guess > answer:
print('大了!')
elif guess<answer:
print('小了!')
else:
print('正解')
if count >= 6:
print('睿智选手!')
elif count == 1:
print('科技选手!')
else:
print('一般选手')
break
结果:
现在产生了一个100以内的随机数,猜猜看:50
大了!
现在产生了一个100以内的随机数,猜猜看:25
小了!
现在产生了一个100以内的随机数,猜猜看:37
大了!
现在产生了一个100以内的随机数,猜猜看:31
小了!
现在产生了一个100以内的随机数,猜猜看:34
正解
一般选手
二、列表(list)
tip:列表、字典、元组、集合都是容器类型的数据类型
列表(list):用来存储多个数据的一种容器类型,里面的单个数据叫做元素
特点:
- 有序的
- 可变的(可变指的是容器中的内容的个数和值可变)
- 元素可以是任何类型的数据
- 列表的值用[]括起来,多个元素之间用','隔开。[] ----- 空列表
- 整型、浮点型、布尔型一般都不能通过list()转换成列表(list)类型,字符串可以通过list()转换成列表,每个字符为列表中的一个元素
1.怎么声明一个列表(list)
list1 = []
print(list1, type(list1))
list2 = [1, '2', ['1', 2], {'1':2}, (1, 2, 3)]
print(list2, type(list2))
list3 = list('1123')
print(list3, type(list3))
# 通过生成式生成列表(i for i in range(10))
list4 = list(i for i in range(10))
print(list4, type(list4))
list5 = list(i for i in range(10) if i%3)
print(list5, type(list5))
结果:
[] <class 'list'>
[1, '2', ['1', 2], {'1': 2}, (1, 2, 3)] <class 'list'>
['1', '1', '2', '3'] <class 'list'>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'>
[1, 2, 4, 5, 7, 8] <class 'list'>
2.获取列表元素
- 列表中的每一个元素都有一个对应的下标:0 ~ len(list)-1;-1 ~ -len(list)
a.获取单个元素:列表名[下标],下标不能越界
names = ['mark', 'joe', 'jerry', 'tom', 9]
mark = names[0]
print(mark)
mark = names[-4]
print(mark)
结果:
mark
joe
b.获取部分元素(切片)
- 列表名[起始下标:结束下标]:获取从起始下标到结束下标前的所有元素。结果是一个列表。
- 列表名[起始下标:结束下标:步进]:获取从起始下标开始,每次下标加步进获取元素,直到结束下标前。
- 起始下标和结束下标都可以缺省。如果步进是正数,起始缺省就是从第一个元素开始,如果是负数就从最后一个元素开始获取。
示例:
names = ['mark', 'joe', 'jerry', 'tom', 9]
print(names[1:3])
print(names[-3:-1])
print(names[-1:-3:-1])
结果:
['joe', 'jerry']
['jerry', 'tom']
[9, 'tom']
c.一个一个的获取列表中的所有元素(遍历)
######### for 循环遍历
for name in names:
print(name, type(name))
结果:
mark <class 'str'>
joe <class 'str'>
jerry <class 'str'>
tom <class 'str'>
9 <class 'int'>
######### while循环遍历
index = 0
while index<len(names):
print(names[index])
index += 1
结果:
mark
joe
jerry
tom
9
3.获取列表的长度(获取列表元素的个数)
print(len(names))
结果:
5
三、添加列表元素
新建一个空的列表
skills = []
1.append()函数
- 格式:列表.append(item)
- 功能:在列表的末尾添加一个元素
skills.append('小拉拉')
print(skills, type(skills))
skills.append('地爆天星')
print(skills, type(skills))
结果:
['小拉拉'] <class 'list'>
['小拉拉', '地爆天星'] <class 'list'>
2.insert()函数
- 格式:列表.insert(index, item)
- 功能:在指定下标前插入一个元素
- tip:下标越右界,会插入到列表的最后;越左界,插入到列表最前面
skills.insert(1, '煌龙偃月')
print(skills, type(skills))
结果:
['小拉拉', '煌龙偃月', '地爆天星'] <class 'list'>
3. +
- 列表1+列表2:将列表2中的元素添加到列表1中
skills = skills + ['一骑当千']
print(skills, type(skills))
结果:
['小拉拉', '煌龙偃月', '地爆天星', '一骑当千'] <class 'list'>
四、删除列表中的元素
1.del 语句
- 不管是添加元素还是删除元素,操作完成后都会刷新下标。
- del可以删除任何数据
- del 列表[下标]:删除指定列表中指定下标的元素
注意:下标不能越界
films = ['肖生克额救赎', '阿甘正传', '跤警故事', '赌神', '倩女幽魂', '跤警故事', '跤警故事']
print(films)
del films[2]
print(films)
结果:
['肖生克额救赎', '阿甘正传', '跤警故事', '赌神', '倩女幽魂', '跤警故事', '跤警故事']
['肖生克额救赎', '阿甘正传', '赌神', '倩女幽魂', '跤警故事', '跤警故事']
2.remove方法
- 列表.remove(元素):删除列表中指定的元素,有多个相同指定的元素时,只删除最前面的一个指定的元素,没有指定元素时,会报错
films.remove('跤警故事')
print(films)
结果:
['肖生克额救赎', '阿甘正传', '赌神', '倩女幽魂', '跤警故事']
3.pop()方法
- 列表.pop():取出列表的最后一个元素
- 列表.pop(下标):取出列表中指定下标的那个元素
注意:下标不能越界
films_last = films.pop()
print(films)
print(films_last, type(films_last))
films_1 = films.pop(1)
print(films)
print(films_1, type(films_1))
结果:
['肖生克额救赎', '阿甘正传', '赌神', '倩女幽魂']
跤警故事 <class 'str'>
['肖生克额救赎', '赌神', '倩女幽魂']
阿甘正传 <class 'str'>