python入门(第2节实践课)

题目1
1 列表基本操作:
a)构造一个列表,包含从1到100的所有自然数,然后将所有奇数置为0,
所有偶数变为该偶数的一半。并且求这个新列表的所有元素的和
b) 构造一个元素全为0的列表,长度为200。 将其中下标为偶数元素全部变为1,
下标为奇数的元素全部变成2
c) 构造从-1到-100的列表,然后删除前15个元素,删除后20个元素。之后的列表倒序产生一个新的列表,然后将偶数下标的元素符号反号,之后按从大到小的顺序从新排列为新的列表

#a
print("第一题a部分")
x=[i for i in range(1,101)]    #创建对应要求的列表
for i in x:                    #遍历列表,
    if i%2==1:                 
        x[i-1]=0             #i=1是奇数,而它对应列表下标是0,所以存在1个单位的错位   x[0]=1
    else:                   
        x[i-1]=int(i/2)     #保持整型
print(x)

#b
print("第一题b部分")
x=[0]*200                         
x[::2]=[1]*len(x[::2])          #对对应长度的奇偶切片赋值 
x[1::2]=[2]*len(x[1::2])
print(x)

#c
print("第一题c部分")
x=[i for i in range(-100,0)]
x.sort(reverse=True)
print("原列表")
print(x)
for i in range(15):
    x.pop(0)                       
for i in range(20):
    x.pop(-1)            #x.pop(-1)尾数出列表
print("删除前后元素后的列表")
print(x)
for i in range(len(x[::2])):    
    x[2*i]=16+2*i                  # 运行程序观察,删除前后元素后的列表,进行数学归纳
print("偶数下标反号值后的列表")
print(x)
print("排序后的列表")
x.sort(reverse=True)
print(x)

题目2
2字符串 dfjkdskfdfjkfkali3ri3kdsk,dsjfkdsjkfa;djsfdsk;dasfj;sdjfjadsk;fjadkjdfksjfak有多少个字母?多少个标点符号?多少个数字? 字母a重复了多少次? 字母d重复le多少次?求各个字母重复的频率

#a
import string
s=input("请输入一个字符串")

dic={"字母个数为":0,"数字个数为":0,"标点符号个数为":0}  #建立一个字典,便于统计
for i in  s:
    if i in string.ascii_letters:                         #i字符满足条件对应字典值加1
        dic['字母个数为']=dic['字母个数为']+1        
    elif i in string.digits:
        dic['数字个数为']=dic['数字个数为']+1
    else:
        dic['标点符号个数为']=dic['标点符号个数为']+1
print(dic)

#b
x=list(s)                     #只有列表才能迭代,所以要转换为列表类型  
y=set(x)                      #将字符串转换为集合,去除重复字符,
Xa=0
Xd=0
for i in y:                           #遍历集合
    Xa=x.count("a")    # 统计列表中的a,d字符出现的次数,因为只有列表中可以迭代,而且没有去重
    Xd=x.count("d")
print("a重复了%d次"%Xa)
print("d重复了%d次"%Xd)

#c
dic1={}
for i in x:
    if i in string.ascii_letters:                 
        dic1[i]=dic1.get(i,0)+1      #统计每个单词出现的概率
for i in dic1.keys():                     #遍历每一个字典的每一个键
    dic1[i]=dic1[i]/len(x)           #频率=字母出现的对应的次数/字符串总长度
print("每个字母出现的频率")
print(dic1)

题目3
3 输入一个数字,求各位数字之和,打印出来。例如输入9023,则输出9+0+2+3=14

x=input("请输入一个数")
y=list(x)          #转化为列表
s=0      
for i in y:      #转化为数值类型,进行累加
    s+=eval(i)  
print("各个位数的和为%d"%s)

python入门(第1节实践课)).
python入门(第3节实践课)).

努力,就应该有回报,Taylor Swift 最新付费歌曲,来拿吧
Taylor Swift - Lover.
提取码:a8r4

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值