Python经典基础习题(序列结构)

目录

1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。

2.编写程序,用一个变量存储你所在小组的组员名单。

3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。

4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。

5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。

6.编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。

7.产生两个随机数x,y,要求0

8.利用生成器表达式生成0-9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。

9.复制一段文章或者论文,利用字典统计出每个字出现的次数。

10.棋盘一共64个小格子,第一个格子放一粒米,第二个2粒米,第三个4粒米,第四个8粒米,以此类推一直把64个格子放满需要多少粒米?要求使用列表推导式和内置函数进行计算。


1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。

程序代码:

x=list(zip(["20212501122","20212501123"],["廖廖","杜杜"],["软件学院","音乐学院"],["软件工程","音乐"]))
print(x)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/01.py
[('20212501122', '廖廖', '软件学院', '软件工程'), ('20212501123', '杜杜', '音乐学院', '音乐')]

进程已结束,退出代码0

2.编写程序,用一个变量存储你所在小组的组员名单。

程序代码:

x = {"杜杜","廖廖","杜小杜","廖小廖"}
for i,j in enumerate(x):
    print(i,j)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/02.py
0 杜杜
1 廖小廖
2 廖廖
3 杜小杜

进程已结束,退出代码0

3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。

程序代码:

x = {"杜杜","廖廖","杜小杜","廖小廖"}
x.add("小小廖")
x.update({"小廖廖","小杜杜"})
x.discard("小廖廖")
for i,j in enumerate(x):
    print(i,j)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/02.py
0 小小廖
1 廖廖
2 杜小杜
3 廖小廖
4 杜杜
5 小杜杜

进程已结束,退出代码0

4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。

程序代码:

x=list(zip("廖廖","杜杜","李子","杨Yy"))
a,b=x
c=set(enumerate(a))
for i in c:
    print(i)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/04.py
(0, '廖')
(2, '李')
(1, '杜')
(3, '杨')

进程已结束,退出代码0

5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。

程序代码:

dict_num = {1:["廖廖","python:","99","分"],2:["杜杜","python:","99","分"],3:["张三","python:","85","分"]}
count = 0
f = 0
for i in range(1,max(dict_num)+1):
    dict_true = dict_num[i]
    j=[dict_true[2]]
    f=f+int(j[0])
    count+=1
print("计算组总人数为:",count,"人")
print("python总分为:",f,"分")
print("平均分为:","%.2f"%(f/count),"分")

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/05.py
计算组总人数为: 3 人
python总分为: 283 分
平均分为: 94.33 分

进程已结束,退出代码0

6.编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。

程序代码:

x={85,77,62,55,45,78,99,95,66,48}
y=[x for x in x if x<=60]
print(y)

运行结果: 

C:\ProgramData\Anaconda3\python.exe D:/exercise02/06.py
[45, 48, 55]

进程已结束,退出代码0

7.产生两个随机数x,y,要求0<x<y<组员长度.输出组员成绩[x:y]切片的成绩。

程序代码:

from random import sample
dict_num = {1:["廖廖","python:","99","分"],2:["杜杜","python:","99","分"],3:["张三","python:","55","分"]}
y=sample(range(1,max(dict_num)),1)
x=sample(range(1,max(dict_num)),1)
if y>x:
    print("y为:",y,"x为:",x)
z=x+y
a=int(" ".join(list(map(str,x))))
b=int(" ".join(list(map(str,y))))
d=[]
for i in range(1,max(dict_num)+1):
    dict_true = dict_num[i]
    c=dict_true[2].split()
    d.append(c)
print(d)
print(d[a:b])

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/05.py
y为: [2] x为: [1]
[['99'], ['99'], ['55']]
[['99']]

进程已结束,退出代码0

8.利用生成器表达式生成0-9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。

程序代码:

result=list((i*4 for i in range(0,10)))
print(result)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/生成器表达式.py
[0, 4, 8, 12, 16, 20, 24, 28, 32, 36]

进程已结束,退出代码0

9.复制一段文章或者论文,利用字典统计出每个字出现的次数。

程序代码:

x = {"廖廖廖廖廖廖廖廖廖廖是杜杜杜杜杜杜杜杜杜杜的阿"}
y = {"廖": 1, "是": 2, "杜": 3, "的": 4}
a = " ".join(x)
count1 = 0
count2 = 0
count3 = 0
count4 = 0
for i in a:
    b = y.get(i)
    if b == None:
        print("您的字典中没有 {} 这个字,请更新字典".format(i))
    else :
        if b == 1:
            count1 += 1
        if b == 2:
            count2 += 1
        if b == 3:
            count3 += 1
        if b == 4:
            count4 += 1
print("廖:",count1)
print("是",count2)
print("杜",count3)
print("的",count4)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/09.py
您的字典中没有 阿 这个字,请更新字典
廖: 10
是 1
杜 10
的 1

进程已结束,退出代码0

10.棋盘一共64个小格子,第一个格子放一粒米,第二个2粒米,第三个4粒米,第四个8粒米,以此类推一直把64个格子放满需要多少粒米?要求使用列表推导式和内置函数进行计算。

程序代码:

x=[i for i in range(1,65)]
f = 0
for i in x:
    f = f + 2**i
print(f-1)

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/exercise02/10.py
36893488147419103229

进程已结束,退出代码0
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值