随机生成整数之间的偶数并记录个数

在这里插入图片描述
题目要求输入两个数字,随机产生2000000个数字间的偶数,并记录每个偶数出现的次数和频率。

代码如下:

import random
def shu(a,b,d1,d2):
	result={}										
	list=[]                #初始化各个变量
	numbers=[]
	if(int(a)<int(b)):
		d1=a   														
		while(int(d1)<int(b)):                    #d1来代替a,为了不改变a的值,从偶数d1开始,每个数+2,到小于b结束,所有偶数放进list【】列表
			list.append(int(d1))
			d1=int(d1)+2
		for x in range(2000000):				#randrange(开始,结束,增加位数),随机产生[a,b)范围的偶数。这就是我开始限制a,b的原因
			numbers.append(random.randrange(int(a),int(b),2)) #随机2000000的数据放在numbers[]列表中
		for num in list:
			count=numbers.count(num)        #list【】列表中每个偶数在numbers【】中计数
			result[num]=count				#result{}字典保存每个偶数的个数
		print("产生2000000个%d~%d之间的随机偶数...统计如下:"%(int(d1),int(d2)))
		print("数值   次数    百分比")
		for key in result.keys():             #字典中保存格式为result{’偶数‘:’个数‘,。。。},其中偶数就是key值,result[key]得到个数值
			p=round((result[key]/2000000),2)
			print(key,"  ",result[key]," ",'{:.2%}'.format(p))       #格式化输出百分比

def main():
	s=[]
	s=input("请输入两个数,以空格分隔:")					
	s=s.split(' ')												#读取输入的两个字符,放在s[]列表中
	d1=a=s[0]
	d2=b=s[1]													#输入的数赋值给a,b
	if(int(a)%2==0) and (int(b)%2==0):							#d1,d2记录才开始的a,b,用于第16行代码的输出问题
		b=int(b)+1			
		shu(a,b,d1,d2)
	elif(int(a)%2!=0) and (int(b)%2!=0):
		a=int(a)+1
		shu(a,b,d1,d2)
	elif(int(a)%2!=0) and (int(b)%2==0):
		b=int(b)+1
		a=int(a)+1
		shu(a,b,d1,d2)
	elif(int(a)%2==0) and (int(b)%2!=0):						#判断四种情况,将原来的a,b变换为a为偶数,b为奇,用于后边格式要求
		shu(a,b,d1,d2)											#四个参数传给shu()函数,进行运算统计次数

if __name__ == '__main__':
	main()														#固定格式,if为main()函数,运行main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值