第五轮作业--函数

1. 第四轮作业函数封装

1.1 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币

[10, 8, 5, 3, 27, 99]

def sum():j=0figure=list([10,8,5,3,27,99])for i in figure:if i%2==0:j +=i//2else:j+=i//2+1print("最少次数为:",j)return jsum()

1.2 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

def sum():prime=[]for i in range(2,101):for j in range(2,100):if (i%j==0):breakif(i==j):prime.append(i)print(prime)twin=[]for k in range(0,25):if (k+1)==25:breakif prime[k+1]-prime[k]==2:twin.append(prime[k+1])twin.append(prime[k])twin.remove(5)twin.sort()print(twin)sum()

1.3 给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

def sum(degree,figure):number=0print("元素个数:",len(figure))for i in figure:number+=ifigure.sort()min=figure[0]max=figure[len(figure)-1]average=number/len(figure)print("和:%f,平均值:%f,最大值:%f,最小值:%f"%(number,average,max,min))figure=[]
degree=int(input("输入要输入总个数:"))
for i in range(0,degree):a=int(input("输入数字:"))figure.append(a)
print(figure)
sum(degree,figure)

1.4 将list中的重复数据去重,至少使用两种方案

#法一
def sum(number):redundant=[]number.sort()for i in range(0,len(number)-1):if number[i]==number[i+1]:redundant.append(number[i])for j in redundant:number.remove(j)print(number)number=[]
degree=int(input("输入要输入总个数:"))
for i in range(0,degree):a=int(input("输入数字:"))number.append(a)
sum(number)#法二
def sum(number):number=set(number)print(number)number=[]
degree=int(input("输入要输入总个数:"))
for i in range(0,degree):a=int(input("输入数字:"))number.append(a)
sum(number)

1.5 两个列表进行合并操作

def sum(a,b):#法一print(a+b)#法二a.extend(b)print(a)a=[1,2,5,6,7,8,9,5,6]
b=["d","f","h","j","u","r"]
sum(a,b)

1.6 使用列表判断一个列表是否在另外一个列表中

def sum(list1,list2):flag=0for i in list1:for j in list2:if i==j:flag+=1if flag==len(list2):print("list2在list1中")else :print("list2不在list1中")list1=[1,2,3,4,5,6,7,8,9,10]
list2=[1,2,3]
sum(list1,list2)

1.7 列表的反转 列表的排序

#列表的反转  列表的排序
def rank(a):#排序a.sort()print(a)#反转a.reverse()print(a)a=[]
degree=int(input("输入要输入总个数:"))
for i in range(0,degree):b=int(input("输入数字:"))a.append(b)
rank(a)

1.8 如何将0-10随机存入列表中

import randomdef sum(figure):figure=set(figure)while True:a = random.randint(0, 10)figure.add(a)if len(figure)==11:breakfigure=list(figure)print(figure)figure=[]
sum(figure)

1.9 完成一个登录注册案例(要求使用容器保存数据)

#判断安全级别
def passworded(user,password):a = "123456789"b = "qwertyuiopasdfghjklzxcvbnm"c = "~!@#$%^&*()_=-/,.?<>: ;[]{}\|"while True:flag1, flag2 = 0, 0user= input("输入用户名:")password = input("输入密码:")# 判断密码长度if len(password) <= 8:flag1 += 1elif len(password) > 8:flag1 += 1elif len(password) > 16:flag1 += 1# 判断字符串包含的类型for i in password:if i in a:flag2 += 1breakfor i in password:if i in b:flag2 += 1breakfor i in password:if i in c:flag2 += 1break# 判断密码强度if flag1 == 1 and flag2 == 1:print("简单密码")breakelif flag1 == 1 and flag2 == 2:print("中等密码")breakelif flag1 == 2 and flag2 == 3:print("高级密码")breakelse :print("请重新输入密码")return user,password#把注册信息保存到容器中
def login(user,password):register = []while True:user,password=passworded(user,password)a={'user':user,'password':password}register.append(a)esc=input("输入y退出:")if esc=="y":breakreturn register#主函数
print("注册")
user = 0
password = 0
register=login(user,password)
print(register)

1.10 使用控制台,完成英雄联盟购买英雄

import sys#判断安全级别
def passworded(user,password):a = "123456789"b = "qwertyuiopasdfghjklzxcvbnm"c = "~!@#$%^&*()_=-/,.?<>: ;[]{}\|"while True:flag1, flag2 = 0, 0user= input("输入用户名:")password = input("输入密码:")# 判断密码长度if len(password) <= 8:flag1 += 1elif len(password) > 8:flag1 += 1elif len(password) > 16:flag1 += 1# 判断字符串包含的类型for i in password:if i in a:flag2 += 1breakfor i in password:if i in b:flag2 += 1breakfor i in password:if i in c:flag2 += 1break# 判断密码强度if flag1 == 1 and flag2 == 1:print("简单密码")breakelif flag1 == 1 and flag2 == 2:print("中等密码")breakelif flag1 == 2 and flag2 == 3:print("高级密码")breakelse :print("请重新输入密码")return user,password#把注册信息保存到容器中
def login(user,password):register = []while True:user,password=passworded(user,password)a={'user':user,'password':password}register.append(a)esc=input("输入y退出:")if esc=="y":breakreturn register#主函数
register = []
while True:print("\n\t\t 英雄联盟商城登录界面\n")print("~ *" * 28)print("\n")print("\t\t\t 1.用户登录\n")print("\t\t\t 2.新用户注册\n")print("\t\t\t 3.退出系统\n")print("~ *" * 28)print("\n")choice=int(input("(温馨提示)请输入您的选项:"))if choice==2:while True:print("注册")user = 0password = 0register = login(user, password)esc = input("输入y退出:")elif choice==1:print("登陆")dicter={}user = input("输入用户名:")password = input("输入密码:")dicter['user']=userdicter['password']=passwordfor i in register:if dicter==i:print("\n\t\t 英雄联盟商城首页\n")print("~ *" * 28)print("\n")print("\t\t\t 1.进入英雄超市\n")print("\t\t\t 2.休闲小游戏\n")print("\t\t\t 3.退出登录\n")print("~ *" * 28)print("\n")choice2 = int(input("(温馨提示)请输入您的选项:"))if choice2==1:print("\t\t英雄联盟英雄列表")print("~ *" * 20)print("\r")print("编号 姓名 昵称 价格 库存 描述")print("1 纳尔 迷失之牙 3500 0 丛林不会原谅盲目与无知")print("2 锐雯 放逐之刃 4000 0 她是残忍高效的战士")print("3 薇恩 暗夜猎手 3500 0 这个世界不想人们想象的那么美好")print("4 扎克 生化魔人 3000 0 即使你没有脊柱,你也必须站起来")print("5 阿狸 九尾妖狐 10000 100 一人之行可灭世,众人之勤可救世!")print("~ *" * 20)x = int(input('(温馨提示)请输入您要购买的英雄编号:'))print(end='\n')while x <= 5:if x == 5:print("\t\t英雄商城购买英雄")print("~*" * 20)print("\r")print("\t英雄名称:九尾妖狐(史诗)")print("\t英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)")print("\t\t攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125")print("\r")print("\t英雄座右铭:一人之行可灭世,众人之勤可救世!")print("\t英雄价格:10000")print("\t活动折扣:9.5")print("\r")print("插播广告:当风云变色,当流离失所,世界不再是旧日模样")print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")print("~ *" * 20)y = input('(温馨提示)请付款:')if y == "10000":print("\t\t英雄商城购买英雄")print("英雄购买票据")print("~ *" * 20)print("\r")print("\t英雄名称:九尾妖狐(史诗)")print("\t英雄价格:10000")print("\t活动折扣:9.5")print("\r")print("\t应付付款:9500")print("\t实际付款:10000")print("\t找零:500")print("\r")print("插播广告:当风云变色,当流离失所,世界不再是旧日模样")print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")print("~ *" * 20)input('(温馨提示)按任意键返回初始菜单:')breakprint(end='\n')elif x == 1 or x == 2 or x == 3 or x == 4:print("该英雄没有库存")print("输入大于5的数则退出系统")x = int(input("请输入数字:"))continueelse:breakprint("已退出登陆")elif choice2==2:passelif choice2==3:breakelif choice==3:sys.exit()

2. 判断以下哪些不能作为标识符

A、a
B、¥a
C、_12
D、$a@12
E、false
F、False

答案:B,D,F


3. 输入数,判断这个数是否是质数(要求使用函数 + for循环)

def prime(number):for i in range(2,number+1):   #穷举法if number%i==0:   breakif number==i:               #当number能一直除到本身。则为质数print("这个数是质数")else :print("这个数不是质数")#主函数
number=int(input("输入一个数:"))
prime(number)

4. 求50~150之间的质数是那些?

def prime():for i in range(50,151):     #穷举法for j in range(2,i+1):if i%j==0:breakif j==i:               #当number能一直除到本身。则为质数print(i,end=" ")print()#主函数
prime()

5. 打印输出标准水仙花数,输出所有三位数水仙花数

def daffodil():for i in range(100,1000):if (i%10)**3+(i%100//10)**3+(i//100)**3==i:print(i)daffodil()

6. 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

def number():sum1 = 0for num in range(0,100):num=str(num)for i in num:i=int(i)sum1+=inum=int(num)if (num-sum1)%9!=0:print("该命题错误")breaknumber()

7. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

def number():for i in range(10000,100000):A=(i*10)+7B=i+700000if B/A==5:print(i)number()

8. 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来

def number():molecule=0      #分子denominator=0   #分母for molecule in range(1,140):for denominator in range(1,140):if molecule * denominator==140:if molecule<denominator:if molecule%2==0 and denominator%2==0:for i in range(2,molecule+1):if molecule%i==0 and denominator%i==0:print(int(molecule/i),"/",int(denominator/i))else :print(int(molecule), "/", int(denominator))number()

9. 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这 个自然数.

def sumber():flag=0for i in range(80,100000):figure=i/80if figure%7==0:if figure%2==1 and figure%3==1 and figure%4==1 and figure%5==1 and figure%6==1:print(i)sumber()

10. 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和

def sumber():for i in range(100,1000):if (i/11)==((i%10)+(i//100)+(i//10%10)):print(i)sumber()

11. 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币

[10, 8, 5, 3, 27, 99]
def sumber():j=0figure=list([10,8,5,3,27,99])for i in figure:if i%2==0:j +=i//2else:j+=i//2+1print("最少次数为:",j)sumber()

12. 求1~100之间不能被3整除的数之和

def sumber():j=0for i in range(1,101):if i%3!=0:j+=iprint(j)sumber()

13. 给定一个正整数N,找出1到N(含)之间所有质数的总和

def sumber(figure):digit=0for i in range(2,figure+1):for j in range(2,figure):if i%j==0:breakif i==j:digit+=iprint(digit)figure=int(input("输入一个数:"))
sumber(figure)

14. 计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1…)

import mathdef sumber():PI=0flag1=flag2=flag3=1while math.fabs(flag2)>=0.000001:PI += flag2flag1 = -flag1flag3 += 2flag2=flag1/flag3print("PI=",4*PI)sumber()

15. 求 a+aa+aaa+…+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定

def number(n):count=0num=0for i in range(n):num+=n*10**10count+=numreturn countnum=int(input("请输入一个1-9的整数:"))
print(number(num))

16. 合并两个有序数组,合并后还是有序列表

def listed():a=[1,2,3,4,5,6,7,8,9,10]b=[11,12,13,14,15,16,17,18,19]a.extend(b)print(a)listed()

17. 给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前

def listed():list1=[1,15,651,49,497,26,2,31,4,5,66,7,8,9,10,13,19,37,39]list2=[]list3=[]for i in range(0,len(list1)):if list1[i]%2==0:list2.append(list1[i])list2.sort()else:list3.append(list1[i])list3.sort()list1=[]list1.extend(list2)list1.extend(list3)print(list1)listed()

18. 将10进制数据转换为二进制,并且统计其中的0和1的数量

def number(figure):num=[]flag1=flag2=0digit=str(bin(figure))print(digit)for i in digit:num.append(i)print(num)for j in range(2,len(num)):if num[j]=="0":flag1 += 1else:flag2 += 1print("0的数量:",flag1,"1的数量:",flag2)figure=int(input("输入一个数:"))
number(figure)

19. 给定一个数组,已知数组中的元素都是成对出现,现在数组中只有一个元素没有成对,请找出这个元素。

[1,3,1,2,2,8,8]
def number():num=[1, 3, 1, 2, 2, 8, 8]num2=[]num.sort()print(num)for i in range(0,len(num)-1):if num[i] == num[i+1] :num2.append(num[i])for j in num2:num.remove(j)num.remove(j)print(num[0])number()

20. 给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

def sumber():maxed,mined=0,0a=[2,5,8,7,4,1,3,6,9,10]print(len(a))for i in range(len(a)-1):for j in range(len(a)-1-i):if a[j]>a[j+1]:a[j], a[j + 1] = a[j + 1], a[j]print(a)sumber()


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部