注:复制代码时注意缩进, 以免bug。
1.四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身,求10000以内的玫瑰数
for i in range(1000,10000):
a=i//1000 #千位
b=i//100%10 #百位
c=i//10%10 #十位
d=i%10 #个位
if a**4+b**4+c**4+d**4==i:
print(i,end=" ")
2.100以内素数之和(素数也叫质数。一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除)
con=sum=0
for i in range(2,101):
for j in range(2,i):
if i%j==0:
break
else:
print(i,end=" ")
con+=1
sum+=i
print("素数之和为:",sum)
print("共有",con,"个素数!")
3.使用*打印一个正方形
print("* "*6)
for i in range(3):
print("*","*".rjust(9))
print("* "*6)
4.输入一行字符,分别统计出其中的数字、大小写字母和其他字符,总个数
inp=input("请任意输入:\n")
a=b=c=w=m=con=0
for i in inp:
if i.isalpha():
b+=1 #字母
if i.isupper():
w+=1 #大写字母
if i.islower():
m+=1 #小写字母
elif i.isnumeric():
a+=1 #数字
elif i.isalnum()==0:
c+=1 #非 数字或字母
con+=1
print("数字:",a,",字母:",b,",其他字符:",c)
print("输入总字符为:%d其中大写字母有%d个,小写字母有%d个。"%(con,w,m))
5.打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"=",i*j,end=" ")
print()
- 一个一万以内整数, 加上100和加上268 以后都是一个完全平方数, 请问该数是多少
import math
for i in range(10000):
m = int(math.sqrt(i + 100))
n = int(math.sqrt(i + 268))
if m * m == i + 100 and n * n == i + 268:
print(i)
7.求1000以内水仙花数: 如果一个3位数等于其各位数字的立方和,这个数就是水仙花数
for i in range(100,1000):
a=int(i/100)
b=int(i/10)%10
c=i%10
if a**3+b**3+c**3==i:
print(i)
8.斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
实现输入需要显示多少项数,然后在程序输出相应的斐波那契数列: 比如 输入5 输出 : 0,1,1,2,3。(使用一般方式,递归,迭代或生成器三种方式)
n=int(input("请输入打印的斐波那契数列个数:"))
a, b = 0, 1
for i in range(n):
a, b = b, a + b
print(a, end=' ')
#-----------------------------------------------
inp=int(input("请输入数字:\n"))
def dgc(n,a=0,b=1):
if n==0:
return b
print(a,end=" ")
return dgc(n-1,b,a+b)
dgc(inp)
#-----------------------------------------------
def fib(n):
a,b,counter=0,1,0
while True:
if (counter>n):
return
yield a
a,b=b,a+b
conter=counter+1
n=int(input("请输入你想要的数列长度:"))
f=fib(n) #f 相当于一个迭代器,由生成器返回生成
for i in range(n):
print(next(f),end=" ")
- 抓球问题,5个红球,8个黑球,7个白球, 随机取出10个, 且白球不少于2个黑球不大于3个, 计数可能的颜色组合
sun=0
for i in range(6): #红球
for j in range(9): #黑球
for k in range(2,8): #白球
if j<=3 and i+j+k==10:
sun+=1
print("颜色组合为:%d"%sun)
10.打印 等腰三角型(循环内用一句代码输出)
for i in range(6):
for k in range(5-i):
print(" ",end=" ")
for j in range(2*i+1):
print("*", end=" ")
print()
11.冒泡排序以下列表:li=[1,9,4,7,7,8,2,3,5,8,13,10,11]
li=[1,9,4,7,7,8,2,3,5,8,13,10,11]
for i in range(len(li)-1):
for j in range(len(li)-1-i):
if li[j]>li[j+1]:
li[j+1],li[j]=li[j],li[j+1]
print(li)
12.做一个1-10 的列表,并分别取出偶数成为新的列表。
li=[]
li01=[]
for i in range(1,11):
li.append(i)
print(li)
j=-1
while j
13.输入年, 月 , 日 判断此日期是当年的第几天
date=input("请输入你要输入的日期(格式为20200202的八位数):\n")
if date.isnumeric() and len(date)==8:
years=int(date[0:4])
month=int(date[4:6])
day=int(date[6:])
#这是平年一年的月份天数
cale=[31,28,31,30,31,30,31,31,30,31,30,31]
con=i=0 #con为总天数
if 0
14.猜数字游戏, 系统随机生成一个1000以内的数字,用户输入一个数字, 如果输入数字大于系统数字则提示大了,并统计猜的总次数。
import random #导入模块
computer=random.randint(0, 1000) #生成随机数
num=0 #统计猜的次数
while True:
user=input("请输入数字(退出:输入e):\n")
if user[0]=="e":
break
elif user.isnumeric():
user=int(user)
if computer>user:
num+=1
print("猜小了,重新猜。")
elif computer
15.已知有:user = ["aa","bb","cc"] ,passwd = ["111","222","333"]
模拟登陆:1、从控制台接受 用户名和密码:2、判断 用户名和密码是否正确:如果正确提示登录成功,如果错误提示错误的原因。3、用户名和密码错误总共不能超过3次。
user=["aa","bb","cc"]
passwd=["111","222","333"]
k=None
count=0 #统计次数
while True:
if count>=3: #开关
print("输入次数超过三次!锁定。")
break
use=input('请输入用户名:')
if use in user:
k=user.index(use) #取下标值
while count<3:
pwd = input('请输入密码:')
if passwd[k]==pwd:
print('登录成功')
exit(0)
else:
count+=1
print('密码错误')
else:
print('用户名不存在')
count+=1
#----------------------------------------------------------------------------
com=0 #统计次数
falg=1 #开关
while True:
if com==3 and falg==0: #错误三次,退出
print("用户名或者密码错误三次,已锁定。")
break
if falg==3: #登录成功,退出
break
use=input("输入用户名:")
for i in range(len(user)):
if use==user[i]: #判断用户名
for j in range(len(passwd)):
pwd=input("输入密码:")
if passwd[i]==pwd: #判断密码
print("登录成功!")
falg=3
break
else:
com+=1
print("密码错误")
if com==3:
falg=0
break
else:
if falg==1 and i>=len(user): #判断遍历结束后,确认没此用户
com+=1
print("用户名错误!")
if com==3:
falg=0
16.做一个nextdate程序实现输入一个日期,程序自动输出这个日期后一天的日期.
date=input("请输入你要输入的日期(格式为20200202的八位数):\n")
if date.isnumeric() and len(date)==8:
years=int(date[0:4])
month=int(date[4:6])
day=int(date[6:])
#这是平年一年的月份天数
cale=[31,28,31,30,31,30,31,31,30,31,30,31]
if 0