实验一:编写一个程序,输入年龄后计算是否满足合法工作年龄,并输出相应的结果(童工、合法年龄或退休年龄)。
实验二:编写一个程序,对三个数从小到大排序并输出。
实验三:编写一个程序,计算小于1000的所有整数中能够同时被5和7整除的最大整数。
实验四:给定一个整数组成的列表,判断其升序、降序还是无序。
实验五:编写一个程序,从列表中去除重复项(不能直接用眼睛看,而应该使用程序判断是否存在重复)。
以下是针对这五个实验任务使用Python基础语法实现的解决方案,不使用自定义函数:
实验一:年龄合法性判断
age = int(input("请输入年龄:"))
if age < 16:
print("童工")
elif 16 <= age < 60:
print("合法年龄")
else:
print("退休年龄")
实验二:三个数排序并输出
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
c = int(input("请输入第三个数:"))
min_val = min(a, b, c)
max_val = max(a, b, c)
mid_val = a + b + c - min_val - max_val
print(min_val, mid_val, max_val)
实验三:找出小于1000的能被5和7整除的最大整数
num = 995 # 从995开始向下遍历,因为1000不能被7整除
while num > 0:
if num % 5 == 0 and num % 7 == 0:
print("满足条件的最大整数是:", num)
break
num -= 1
实验四:判断列表的排序状态
lst = [int(x) for x in input("请输入一系列整数,以空格分隔:").split()]
is_asc = all(lst[i] <= lst[i+1] for i in range(len(lst)-1))
is_desc = all(lst[i] >= lst[i+1] for i in range(len(lst)-1))
if is_asc:
print("升序")
elif is_desc:
print("降序")
else:
print("无序")
实验五:从列表中去重(不使用set等内置去重方法)
lst = list(map(int, input("请输入一系列整数,以空格分隔:").split()))
unique_lst = []
for num in lst:
if num not in unique_lst:
unique_lst.append(num)
print("去重后的列表:", " ".join(map(str, unique_lst)))
实验四其他解法
方法二:
#列表推导式,将输入的数字转换为整形存入lst
lst = [int(x) for x in input("请输入一系列整数,以空格分隔:").split()]
# 初始化标志位
is_ascending = True
is_descending = True
# 检查升序
for i in range(len(lst) - 1):
if lst[i] > lst[i + 1]:
is_ascending = False
break
# 如果已经是升序,无需再检查降序(优化:实际上一旦确定非升序,就可判断是否为降序或无序)
if is_ascending:
print("升序")
else:
# 检查降序
for i in range(len(lst) - 1):
if lst[i] < lst[i + 1]:
is_descending = False
break
if is_descending:
print("降序")
else:
print("无序")
方法三:
L=[1,2,3,5,6,7,8,9]
#可能为无序所以要执行下面两步
l1=sorted(L,reserve=ture) #升序
l2=sorted(L,reserve=ture) #降序
if L==L1:
print("升序")
elif L==ll:
print("降序")
else:
print("无序")
实验七:
- 在 names 列表里 black_girl 前面插入一个名字为 alex 的元素。
- 把 shanshan 这个名字改成中文的“姗姗”。
- 往 names 列表末尾的后面插入一个新列表 n=[oldboy, oldgirl]。
- 创建新列表 [1,2,3,4,5,6,2] 并将其合并到 names 列表。
- 取出 names 列表中索引 4-7 的元素。
- 取出 names 列表中索引 2-10 的元素,步长为 2。
- 取出 names 列表中最后三个元素。
- 循环 names 列表,打印每个元素及其索引值;当索引是偶数时,将对应的元素改为 -1。
# 假设初始的 names 列表如下
names = ['lisa', 'annie', 'black_girl', 'tina', 'tom', 'jerry']
# 1. 在 names 列表里 black_girl 前面插入一个名字为 alex 的元素。
names.insert(names.index('black_girl'), 'alex')
# 2. 把 shanshan 这个名字改成中文的“姗姗”。
if 'shanshan' in names:
names[names.index('shanshan')] = '姗姗'
# 3. 往 names 列表末尾的后面插入一个新列表 n=[oldboy, oldgirl]。
names.extend(['oldboy', 'oldgirl'])
# 4. 创建新列表 [1,2,3,4,5,6,2] 并将其合并到 names 列表。
numbers = [1, 2, 3, 4, 5, 6, 2]
names.extend(numbers)
# 5. 取出 names 列表中索引 4-7 的元素。
subset_1 = names[4:8] # 注意索引到7实际上是第8个元素,因为索引是从0开始的
# 6. 取出 names 列表中索引 2-10 的元素,步长为 2。
subset_2 = names[2:11:2]
# 7. 取出 names 列表中最后三个元素。
last_three = names[-3:]
# 8. 循环 names 列表,打印每个元素及其索引值;当索引是偶数时,将对应的元素改为 -1。
for index, value in enumerate(names):
print(f"Index: {index}, Value: {value}")
if index % 2 == 0: # 索引从0开始,所以偶数索引实际上是奇数位置
names[index] = -1
# 注意:第8步中的修改是在原列表上进行的,这会影响后续的使用。根据实际情况决定是否需要保留原列表的不变性。
实验七 第八步用到了迭代解构详见:Python迭代解构
还用到了列表推导式详见:列表推导式,数据结构等