实验三 选择循环结构
题目1
a构造字典{‘1’:1,‘2’:4,‘3’:9,‘4’:16…‘100’:10000}
b 修改字典
如果关键字为3整除,其对应值加1
如果关键字为被3除余数1,其对应值减少1
c 构造字典{1:2,3:4,5:6…99:100} 并且和上面的字典合并为新的字典
1.用到的知识点
- range用法
- 有一个参数:range(n),表示默认从0开始一直到到n-1,间隔为1
- 有两个参数:range(n,m),表示从n开始到m-1,间隔为1
- 有三个参数:range(n,m,t)表示从n开始到m-1,间隔为t
- elif和if的比较
- elif与if语句功能相同
- 但是elif的效率比if高 ,elif一旦找到满足条件的语句就会不再判断,而if语句还会继续判断,直到所有if语句判断完
if if
elif if
elif if
else else
- 列表、字典、集合、元组
- 列表x=[1,2,3,4],对应强制类型转换的方法:list()
- 字典x={“1”:a,“2”:b},对应强制类型转换的方法:dict()
- 集合x={1,2,3,4},对应强制类型转换的方法:set()
- 元组x=(1,2,3,4),对应强制类型转换的方法:tuple()
代码
#a.构造字典
x={} #创建一个空字典
for i in range(1,101): #不包括最后一个数
x[str(i)]=i*i #对应的键是字符串,str(i)将i强制类型转换
#b.修改字典
for i in x.keys(): #x.keys()表示字典中所有键的集合,此时语句表示遍历整个语句
a=int(i) #i是字符串类型,先转换为数值类型才能参与计算
if a%3==0: #按要求对满足条件的键进行操作,修改值
x[i]=x[i]+1
elif:
x[i]=x[i]-1
#c.字典合并
y={} #创建一个空字典
for i in range(1,100,2): #产生1,3,5,7,9,11,......一列数
y[i]=i+1
x.update(y) #x.update(y) y字典对向x中有的键,进行值更新;没有的键值对,会添加到x中
print(x)
题目2
随机产生1000个字符的字符串(小写字母和标点符号和数字组成),
然后统计这个字符串出现的字母和数字和标点符号的次数
提示:string.punctuation+string.ascii_lowercase+string.digits
每个字母或者符号出现的次数形成一个字典,最后产生这个字典
提高:讲字典按照关键字ASCII码的顺序从小到大打印
1.用到的知识
- string模块
1. string.ascii_lowercases 表示含有所有小写字母的字符串
2. string.digits表示从0到9所有数字的字符串
3. string.puctuation表示除上面两种以外的所有字符串 - 对x=[random.choice(s) for i in range(1000)]的理解
- random.choice(s)表示从s字符串中随机挑选一个字符
- for i in range(1000)来控制挑选的次数
- x=[]表示将每次产生的数放入一个列表
代码
import random #使用random、string模块中的函数功能需要先导入
import string
s=string.punctuation+string.ascii_lowercase+string.digits
x=[random.choice(s) for i in range(1000)] #产生列表
y=set(x) #生成集合去重
di={} #创建一个字典
for i in y: # 遍历集合
di[i]=x.count(i) #记录每一个集合y元素在列表x中出现的次数,然后放入di词典中
li=list(di.keys()) #由于只要列表才能排序,先转化为列表,然后排序
li.sort()
for i in li: #最后打印遍历排好的列表,进行依次答应
print(i,di[i])
题目3
a.产生100个随机(1到100以内)的随机整数的集合,删除其奇数。
b.产生20个随机数(1到200内)的列表,对奇数序号的元素升序排列,
对偶数序号的元素降序排列,形成新的列表
1.用到的知识
- sort用法
a.sort()对列表由小到大进行排序
a.sort(reverse=True)对列表由大到小进行排序 - a.remove(i)
删除a中,对应的i值
代码
#a.
import random
x=[random.randint(1,101) for i in range(100)] #产生随机随列表
y=set(x)
z=list(y) #集合y无法对自身迭代时,进行y.remove()操作,但是列表可以。所以去强制类型转换
for i in z: #集合y和列表z的元素相同,可通过对z列表编列,去除对应集合y中的奇数值
if i%2==1:
y.remove(i)
print(y)
#b.
import random
x=[random.randint(1,201) for i in range(20)]
a=x[1::2] #取奇数切边,进行排序
a.sort()
b=x[::2] #取偶数切边,进行排序
b.sort(reverse=True)
x[1::2]=a #将排序后值赋给列表对应的位置
x[::2]=b
print(x)
python入门(第2节实践课).
努力,就应该有回报,Taylor Swift 最新付费歌曲,来拿吧
Taylor Swift - Lover.
提取码:a8r4