作业1:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
num = 0 ls = [10, 8, 5, 3, 27, 99] for i in ls: a = i % 2 if a == 0: num = i // 2 + num else: num = i // 2 + num + 1 print("需要取%s次"%(num)) C:\Users\山己几>python D:\day2\有一堆硬币.py 需要取78次 C:\Users\山己几>
作业2:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
ls = [] for i in range(2, 101): flag = True for j in range(2, i): if i % j == 0: flag = False break if flag: ls.append(i) index = 0 print(ls) while index < len(ls) - 1: first = ls[index] second = ls[index + 1] if second - first == 2: print(f"{first}和{second}之间是孪生素数") index += 1 C:\Users\山己几>python D:\day2\孪生数.py [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 3和5之间是孪生素数 5和7之间是孪生素数 11和13之间是孪生素数 17和19之间是孪生素数 29和31之间是孪生素数 41和43之间是孪生素数 59和61之间是孪生素数 71和73之间是孪生素数
作业3:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
ls = [1,2,3,4,5,6,7,8] print("列表",ls) num_max = ls[0] num_min = ls[0] num_and = 0 for i in range(1,len(ls)): if num_max < ls[i]: num_max = ls[i] elif num_min > ls[i]: num_min = ls[i] else: pass print("最大值:",num_max) print("最小值:",num_min) for i in ls: num_and += i print("和:",num_and) num_average = num_and/len(ls) print("平均值:",num_average) C:\Users\山己几>python D:\day2\给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和.py 列表 [1, 2, 3, 4, 5, 6, 7, 8] 最大值: 8 最小值: 1 和: 36 平均值: 4.5
作业4:将list中的重复数据去重,至少使用两种方案
#1.将列表转换成为集合再转换成为列表 a = [1,2,36,1,2,88,98,56] #将转换前的列表输出 print("去重前:",a) #b是转换后的新列表 b = list(set(a)) print("去重后:",b) #2.利用循环进行去重 j = [] for i in a: if i not in j: j.append(i) print("去重后:",j)
作业5:两个列表进行合并操作
作业6: 使用列表判断一个列表是否在另外一个列表中
#根据是否存在交集来判断列表是否在另一个列表中,若存在交集,则自然证明存在 a = [1,2,3,6,8,9,10,11,12] b = [1,2,3] j = list(set(a).intersection(set(b))) print(j)
作业7:列表的反转 列表的排序
作业8.如何将0-10随机存入列表中
import random ls = [] for i in range(10): ls.append(random.randint(0, 10)) print(ls)
作业1:完成一个登录注册案例(要求使用容器保存数据)
import sys # users保存所有注册成功的用户 users = [] while True: print("欢迎登录我们的用户管理系统") print("\t\t 1、用户注册") print("\t\t 2、用户登录") print("\t\t 3、退出系统") choice = input("请选择您的操作:") if choice == "1": while True: print("欢迎进入到用户注册页面") username = input("请输入用户名称:") password = input("请输入用户密码:") confirm_password = input("请再次确认密码:") # 数据校验 # 用户名称不能为空 if username == None or len(username) == 0: print("对不起,用户为空") continue # 用户名称不能重复 flag = False for u in users: if u.get("username") == username: print("对不起,该用户已经存在,请重新注册") flag = True break if flag: continue # 密码长度不能少于3位 if len(password) < 3: print("对不起,密码长度不能少于3位") continue # 两次密码不一致 if password != confirm_password: print("两次密码不一致") continue # 最后如何保存用户名称和密码 user = {"username": username, "password": password} users.append(user) print("用户注册成功,请登录") break elif choice == "2": print("欢迎进入到用户登录页面") username = input("请输入用户名称:") password = input("请输入用户密码:") # 判断用户名和密码是否存在于users for user in users: if user["username"] == username and user.get("password") == password: print("恭喜您,{},登录成功".format(username)) else: print("对不起,登录失败,请重新登录~~") elif choice == "3": sys.exit() else: print("输入有误,请重新选择") D:\day2>python python完成一个登录注册案例(要求使用容器保存数据).py 欢迎登录我们的用户管理系统 1、用户注册 2、用户登录 3、退出系统 请选择您的操作:1 欢迎进入到用户注册页面 请输入用户名称:username 请输入用户密码:password 请再次确认密码:password 用户注册成功,请登录 欢迎登录我们的用户管理系统 1、用户注册 2、用户登录 3、退出系统 请选择您的操作:3
作业2:给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
作业3:求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
num = input("请输入要相加的数字:") count = int(input("请输入想加的个数:")) a = [] s = 0 for i in range(1,count+1): a.append(num*i) s += int(num*i) print(f"{s}={'+'.join(a)}") D:\day2>python "求 a+aa+aaa+.......+aaaaaaaaa=其中a为1至9之中的一个数,项数也要可以指定。.py" 请输入要相加的数字:9 请输入想加的个数:9 1111111101=9+99+999+9999+99999+999999+9999999+99999999+999999999
作业4:合并两个有序数组,合并后还是有序列表
list1 = [1,2,3,4,5,6,7] list2 = [8,9,10,11,12,13] result = [] while list1 and list2: if list1[0] < list2[0]: result.append(list1[0]) list1.remove(list1[0]) else: result.append(list2[0]) list2.remove(list2[0]) for i in list2: result.append(i) result.sort() print(result) D:\day2>python 合并两个有序数组,合并后还是有序列表.py偶数都放在奇数元素之前.py [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
作业5:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def sortArray(A:list) -> list: reorder = [] for i in A: if i % 2 == 0: reorder.append(i) for i in A: if i % 2 != 0: reorder.append(i) return reorder print(sortArray([3,1,2,4])) D:\day2>python 给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前.py [2, 4, 3, 1]
作业6:将10进制数据转换为二进制,并且统计其中的0和1的数量
def duble(): n=input('请输入终止值:') a=[] i=1 while i<=int(n): d={} b=list(bin(i)) m=0 for j in b: if j=='1': m+=1 d[i]=m a.append(d) i+=1 print(a) duble() def duble1(): n=input('请输入要查询的数:') m=0 for j in list(bin(int(n))): if j=='1': m+=1 print(m) duble1() duble1() D:\day2>python 将10进制数据转换为二进制,并且统计其中的0和1的数量.py元素之前.py 请输入终止值:23 [{1: 1}, {2: 1}, {3: 2}, {4: 1}, {5: 2}, {6: 2}, {7: 3}, {8: 1}, {9: 2}, {10: 2}, {11: 3}, {12: 2}, {13: 3}, {14: 3}, {15: 4}, {16: 1}, {17: 2}, {18: 2}, {19: 3}, {20: 2}, {21: 3}, {22: 3}, {23: 4}] 请输入要查询的数:6 2 请输入要查询的数:6 2 请输入要查询的数:7
作业7:给定一个数组,已知数组中的元素都是成对出现,
现在数组中只有一个元素没有成对,请找出这个元素。
[1,3,1,2,2,8,8]
nums = [1,3,1,2,2,8,8] nums_dict={} for i in nums: nums_dict.setdefault(i,0) nums_dict[i]+=1 for i in nums_dict: if nums_dict[i]==1: print(f'只出现一次的数字为{i}') D:\day2>python 给定一个数组,已知数组中的元素都是成对出现,.py在奇数元素之前.py可以指定。.py" 只出现一次的数字为3 D:\day2>
作业(选做题):
某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),
问题:共有多少种走法?
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0