Python简单练习题(2)

本文介绍了Python编程中实现点名系统、打印列表不重复数据、生成字典以及保存学生信息的方法。通过示例代码展示了如何处理用户输入、条件判断以及数据结构的操作,适合初学者学习Python基础操作。

输出三行诗

**题目要求:**输入三个字符串,输出时用方框围起来并局中呈现。
源码:

line1=input("请输入第一行文字:")
line2=input("请输入第二行文字:")
line3=input("请输入第三行文字:")
l_1=len(line1)##记录每行长度
l_2=len(line2)
l_3=len(line3)
max_l=max([l_1,l_2,l_3])
bound='-'

print('+',bound.center(max_l,'-'),'+')
print('|',line1.center(max_l,' '),'|')
print('|',line2.center(max_l,' '),'|')
print('|',line3.center(max_l,' '),'|')
print('+',bound.center(max_l,'-'),'+')

结果:

请输入第一行文字:Hello!
请输入第二行文字:My name is Mary.
请输入第三行文字:Nice to meet you!
+ ----------------- +
|       Hello!      |
|  My name is Mary. |
| Nice to meet you! |
+ ----------------- +

模拟点名系统

题目要求:随即打印学生姓名进行点名,得到此学生是否迟到,'y’代表已到,'n’代表未到,点名完成后,打印未到者名单。
源码:

number=input('请输入学生人数:')
number=int(number)
student_no=set()
for i in range(0,number):
    student_name=input('请输入学生姓名:')
    student_here=input('学生是否到达,是y,否n:')
    if student_here=='n':
        student_no=student_no|{student_name}

print('未到的学生为:',student_no)

结果:

请输入学生人数:3
请输入学生姓名:张三
学生是否到达,是y,否n:n
请输入学生姓名:李四
学生是否到达,是y,否n:y
请输入学生姓名:王五
学生是否到达,是y,否n:n
未到的学生为: {'张三', '王五'}

打印列表不重复数据

题目要求:
假设有一个列表有很多数据,还有重复的,打印出列表数据要求重复的只打印一次,顺序以列表中第一次出现该元素的顺序为准。
源码:

L=[1,3,5,7,9,6,3,1]
new_L=[]
for i in range(0,len(L)):
    if len(set(new_L)&set({L[i]}))==0:
        new_L=new_L+[L[i]]
print(new_L)

结果:

[1, 3, 5, 7, 9, 6]

对应列表生成字典

题目要求:
已知两个等长的列表list1和list2,以list1中的元素为键,以list2中的元素为值,生成相应字典。
源码:

##第一个列表元素为键,第二个列表元素为值生成字典
list1=input("请输入第一个列表:")
list2=input("请输入第二个列表:")
list1=list(list1)
list2=list(list2)

m=len(list1)
D={list1[i]:list2[i] for i in range(0,m)}
print(D)

结果:

请输入第一个列表:abcde
请输入第二个列表:12345
{'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5'}

保存学生信息

题目要求:
输入5个学生的姓名和年龄,每个学生的信息形成字典后存入列表。
源码:

student=[1,2,3,4,5]
for i in range(0,5):
    student_name=input('请输入姓名:')
    student_age=input('请输入年龄:')
    student[i]={'name':student_name,'age':student_age}
print(student)

结果:

请输入姓名:张一
请输入年龄:21
请输入姓名:张二
请输入年龄:22
请输入姓名:张三
请输入年龄:23
请输入姓名:张四
请输入年龄:24
请输入姓名:张五
请输入年龄:25
[{'name': '张一', 'age': '21'}, {'name': '张二', 'age': '22'}, {'name': '张三', 
'age': '23'}, {'name': '张四', 'age': '24'}, {'name': '张五', 'age': '25'}]  
<think> 我们有两个引用,但用户需要的是Python简单练习题的源码。根据引用[1][2],它们分别提供了两个练习题:一个是求5个数的与平均数,另一个是冒泡排序。 用户要求是“Python简单练习题的源码”,因此我们可以提供这两个例子,因为它们都是简单练习题。 注意:引用[1]中有一个while循环的例子,引用[2]中有一个冒泡排序的例子。 我们将分别展示这两个例子,并给出简要说明。 </think>以下是两个Python简单练习题的源码及分析,适合初学者练习基础语法: ### 1. 数字求与平均值计算 ```python i = 1 sum = 0 while i <= 5: num = input('请输入第%d个数:' % i) # 格式化输入提示 a = int(num) # 转换为整数 sum += a # 累加 i += 1 # 计数器增加 print('为:', sum) print('平均数为:', sum/5) # 计算平均值 ``` **功能分析**: 1. 使用`while`循环获取5个用户输入的数字 2. 通过`sum += a`实现累加求 3. 最终计算并输出总与平均值 4. 格式化字符串`%d`动态显示当前输入序号[^1] ### 2. 冒泡排序算法 ```python def bubble_sort(arr): n = len(arr) for i in range(n): # 遍历所有元素 for j in range(0, n-i-1): # 每次循环减少已排序部分 if arr[j] > arr[j+1]: # 比较相邻元素 arr[j], arr[j+1] = arr[j+1], arr[j] # 位置交换 return arr # 测试示例 if __name__ == "__main__": test_arr = [64, 34, 25, 12, 22, 11, 90] print("排序前:", test_arr) print("排序后:", bubble_sort(test_arr)) ``` **算法原理**: 1. 双重循环遍历列表,外层控制遍历轮数 2. 内层比较相邻元素,若前大于后则交换位置 3. 每轮将最大元素"冒泡"到末尾 4. 时间复杂度为$O(n^2)$,空间复杂度$O(1)$[^2]
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值