1、编程实现:猜数游戏。在程序中预设一个0-9之间的整数,让用户通过键盘输入所猜的数。如果大于预设的数,显示“太大了”;若小于预设的数,显示“太小了”,如此循环直至猜中该数,显示“猜测了N次,你猜中了”,其中N是用户输入数字的次数。
from random import*
a=randint(0,9)
c=a
b=10
s=0
while b!=a:
b=int(input("请输入猜测的0-9之间的整数:"))
if b>a:
print("太大了")
elif b<a:
print("太小了")
s=s+1
print("要猜测的数字是{}".format(c))
print("猜了{}次,你猜中了".format(s))
2、编程实现:生成随机密码。具体要求如下:
(1)使用random库,采用字符‘A’作为随机数种子。
(2)密码由26个英文大小写字母、10个数字字符和!@#$%^&*等等8个特殊字符组成。
(3)每组密码长度固定为10个字符。
(4)程序运行产生10组密码,每组密码都不能与其他组相同。
(5)按每行一组输出产生的10组密码。
from random import*
i,ls=0,[]
s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
seed( ord("A"))
while i<10:
m=''
for j in range(10):
m=m+s[int(random()*len(s))]
if not(m in ls):
print("第{}组密码为:{}".format(i+1,m))
ls.insert(i,m)
i=i+1
本题解题方法有很多种,这里就只记录一种。
3.编程实现:输出2-100000 以内所有的相亲数。所谓相亲数是指一个数x所有因子之和等于y,而y的所有因子之和等于x,此时x和y称为一对相亲数。
2-100000以内所有的相亲数︰
第1对相亲数为:220和284
220的因子之和为:1+2+4+5+10+11+20+22+44+55+110=284284的因子之和为:1+2+4+71+142=220
print("2-10000以内的所有相亲数:")
n=0 #第几对相亲数
for i in range(2,100001):#从2开始找
n1=0
a=''
n2=0
b=''
for j in range(1,i):#j为数字的因子
if i%j==0:
n1=n1+j#相亲数中的第二个数字的因子和
a=a+str(j)+'+'#因子的相加公式如1+2+4+5+
for k in range(1,n1):
if n1%k==0:
n2=n2+k#相亲数中的第一个数字的因子和
b=b+str(k)+'+'#因子的相加公式如1+2+4+
if i!=n1 and i==n2:#如果不写这句话就会出现220,284是第一对相亲数。284,220是第二队相亲数这种错误情况
if n1>n2:
n=n+1
print("第{}对相亲数为:{}和{}".format(n,n2,n1))
print("{}的因子之和为:{}={}".format(n2,a[0:-1],n1))
print("{}的因子之和为:{}={}".format(n1,b[0:-1],n2))
下面写的是同学的代码:(不是自己写的,果然有点理解不了)
p=0
print("2-1000000以内所以的相亲数:")
for i in range(2,100001):
s=0
m=''
for j in range(1,i):
if i%j==0:
s=s+j
m=m+str(j)+"+"
for k in range(i+1,100001):
if k==s:
n=''
t=0
for l in range(1,k):
if k%l==0:
t=t+l
n=n+str(l)+"+"
if t==i:
p=p+1
print("第{}对相亲数为:{}、{}".format(p,i,k))
print(i,"的因子之和为:",m[:-1])
print(k,"的因子之和为:",n[:-1])