python入门(第3节实践课)

实验三 选择循环结构

题目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.用到的知识点

  1. range用法
    1. 有一个参数:range(n),表示默认从0开始一直到到n-1,间隔为1
    2. 有两个参数:range(n,m),表示从n开始到m-1,间隔为1
    3. 有三个参数:range(n,m,t)表示从n开始到m-1,间隔为t
  2. elif和if的比较
    1. elif与if语句功能相同
    2. 但是elif的效率比if高 ,elif一旦找到满足条件的语句就会不再判断,而if语句还会继续判断,直到所有if语句判断完
if                   if
elif                 if
elif                 if
else                 else
  1. 列表、字典、集合、元组
    1. 列表x=[1,2,3,4],对应强制类型转换的方法:list()
    2. 字典x={“1”:a,“2”:b},对应强制类型转换的方法:dict()
    3. 集合x={1,2,3,4},对应强制类型转换的方法:set()
    4. 元组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.用到的知识

  1. string模块
    1. string.ascii_lowercases 表示含有所有小写字母的字符串
    2. string.digits表示从0到9所有数字的字符串
    3. string.puctuation表示除上面两种以外的所有字符串
  2. 对x=[random.choice(s) for i in range(1000)]的理解
    1. random.choice(s)表示从s字符串中随机挑选一个字符
    2. for i in range(1000)来控制挑选的次数
    3. 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.用到的知识

  1. sort用法
    a.sort()对列表由小到大进行排序
    a.sort(reverse=True)对列表由大到小进行排序
  2. 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

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值