随机输入10以内数字 如果与随机相等游戏结束 不等判断大小
b = 0
while True:
a = int(input('请输入数字:'))
b += 1
if 0<=a<=10:
import random
i = (random.randint(0,10))
if a == i:
break
elif a< i:
print('偏小')
elif a> i:
print('偏da')
else :
print('请输入指定范围内的数')
print('gameover,第',b,'次输入正确')
输入不等于0的数字所有和
a = 0
while True:
b = int(input('请输入数字:'))
if 0 == b:
break
a += b
print(a)
print('结束循环')
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
while True:
a= int(input('请输入年龄:'))
if a<0 or a >=100:
print('你他娘的是个人才!')
break
elif a<8:
print('幼儿')
elif a<12:
print('儿童')
elif a<18:
print('少年')
elif a<28:
print('青年')
elif a<38:
print('壮年')
elif a<58:
print('中年')
elif a<88:
print('老年')
elif a<100:
print('神仙')
2.计算5的阶乘 5!的结果是
分析 5! = 12345,所以先找出1,2,3,4,5 然后再累计乘法
n = 1#由于乘法 所以赋值0
for a in range(1,6):#再1,2,3,4,5中以1相隔取数
n*=a#a每取一个数就与n相乘并保存在n中 继续与a取出的下一个相乘一直乘到5 并保存在n中
print(n)# 打印出n
a = 1 n = 1*1 = 1
a = 2 n = 1*2 = 2
a = 3 n = 2*3 = 6
a = 4 n = 6*4 = 24
a = 5 n = 24*5= 120
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘
分析先找出1到20 然后再找出每个数对应的阶乘 累积相加
a = 0#给a赋予0 由于累积相加
for i in range(1,21):#i在[1,20]中依次隔一取数
b = 1#给b赋予1 由于累积相乘
for c in range(1,i +1):#i在[1,i+1]中依次隔一取数
b *= c#b对c进行累积乘
a+= b#a对于b每次循环的累积乘积进行相加
print(a)#打印出a的值
i = 1 b = 1 c = 1 b = 1 *1 = 1 a= 0+1 = 1
i = 2 b = 1 c = 1 b = 1 *1 = 1
c = 2 b = 1 *2 = 2 a= 1+2 = 3
i = 3 b = 1 c = 1 b = 1 *1 = 1
c = 2 b = 1 *2 = 2
c = 3 b = 2 *3 = 6 a= 3+6 = 9
i = 4 b = 1 c = 1 b = 1 *1 = 1
c = 2 b = 1 *2 = 2
c = 3 b = 2 *3 = 6
c = 4 b = 6 *4 = 24 a= 9+24 = 33
i = 5 b = 1 c = 1 b = 1 *1 = 1
c = 2 b = 1 *2 = 2
c = 3 b = 2 *3 = 6
c = 4 b = 6 *4 = 24
c = 5 b = 24*5 = 120 a= 33+ 120 = 153
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
'''
分析:先找出1/1! 、1/2!、 1/3!....一直到 1/20!
然后:再求和
c = 0
for x in range(1,21):
b = 1
for a in range(1,x+1):
b *= 1/a
c += b
print(c)
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
0 + 5 + 55 + 555 + 5555 + 55555 + .......
0*10+5 + 5*10+5 + 55*10+5 + 555*10+5 + 5555*10+5
s = 0 #给s赋值为0 由于是和
n =3 #赋值求的第几项
b =0 #初始项的值 看作
a = 5
for i in range(1,n+1):
b =b*10 +a #55
s += b
print(s)
1. 求斐波那契数列列中第n个数的值:(0),1,1,2,3,5,8,13,21,34....
a = 1#当前数
b = 1#第二个数
n = 0#第一个数
c = 7
for i in range(1,c):
a = b + n
n = b
b = a
print(a )
2. 判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅方法:
⽤用⼀一个数分别除2到sqrt(这个 数),如果能被整除,则表明此数不不是素数,反之是素数
# 方法 :一
conut = 0
a = 0
for i in range(101,201):
for x in range(2,i):
if i%x == 0:
print('此数不是素数',i)
break
else:
print('此数是素数',i)
'''
# 方法 :二
# 先取出100 到 201 的数
'''
for i in range(101,201):
a = True
for x in range(2,i):
if i%x == 0:
print('此数不是素数',i)
a = False
break
if a :
print('此数是素数',i)
# 方法 :三 用while 来做
a = 100
while a <= 200:#取出a范围在 [100,200]
b = 2#注意b必须在a循环以内
while b <= a-1 :#取出b范围在[2,a-1]
if a%b == 0:#判断a是否能整除b(即整除[2,a-1]中任何取值整数)
break#如果a能整除b(即整除[2,a-1]中任何取值整数)退出b循环 然后不执行else:print('此数是素数',a) 并执行a += 1
#进入下个a循环
else: #如果a不能整除b(即整除[2,a-1]中任何取值整数)进行这一步 并执行b += 1
# 然后再进入b循环判断a是否能整除b(即整除[2,a-1]中任何取值整数)一直重复直到b取值到a-1结束b循环
b +=1
else: #正常结束b循环 则打印内容 然后执行a+=1 重新进入a循环
print('此数是素数',a)
a += 1
4. 有⼀一分数序列列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列列的第20个分数
分⼦子:上⼀一个分数的分⼦子加分⺟母 分⺟母: 上⼀一个分数的分⼦子 fz = 2 fm = 1 fz+fm / fz
a = 2#分子
b = 1#分母
c = 3#后一位分子
d = 2#后一位分母
n = 1#取第几次
'''
for x in range(n-1):#循环次数
a ,b = a + b ,a #后一位分子,后一位分母 = 分子+分母 ,分子
print(a)# 打印当前分子
'''同时改变变量
a = 1
b = 2
a,b = b ,a
print(a,b)
或者
a = 1
b = 2
t = a
a = b
b = t
print(a,b)
'''
5. 给⼀一个正整数,要求:1、求它是⼏几位数 2.逆序打印出各位数字
a = 1#给数字赋予位数
n = 12345#随机取一个正整数
while True: #无限循环直到遇到break跳出
c = n%10#对n取余数保存在C中
print(c) # 打印出每次循环的余数
if n //10 == 0:#判断n是否能整除10取商为0
break #如果n能整除10取商为0 跳出整个循环打印出a 判断几位
n//=10#如果n整除10取商不为0 执行n整除10取商
a += 1#位数加1 之后 跳到while True再循环
print(a)#打印出位数
输出3数比较大小
a,b,c = 5,2,3
if a>b>c:
print('a>b>c')
elif a>c>b:
print('a>c>b')
elif b>a>c:
print('b>a>c')
elif b>c>a:
print('b>c>a')
elif c>a>b:
print('c>a>b')
elif c>b>a:
print('c>b>a')
1.珠穆朗玛峰
n = 0
b = 8
while True:
if b >= 884313000:
break
b=b*2
n +=1
print(n)
2兔子问题 斐波拉奇数列
1,1,2,3,5,8,13,21.......
a = 2 #当前数
b = 1 #前一个数
c = 1 #前两个数
n = 5 #第几个数
for _ in range(n-2):
a = b + c
c = b
b = a
print(a)
3百马百担匹配方法
c = 0
for i in range(1,31):
for a in range(1,51):
for b in range(2,101,2):
if i + a +b ==100 and 3*i +2*a + b/2 ==100:
print(i,a,b)
c += 1
print(c)
控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时 n = 4
***** ****
**** ***
*** **
** *
*
n = 5
for i in range(n,0,-1):
for _ in range(i):
print('*',end ='')
print()
'''
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7
* *
*** ***
***** *****
*******
7 = 1星 + 2*3空
7 = 3星 + 2*2空
7 = 5星 + 2*1空
7 = 7星 + 2*0空
'''
n = 7
b = n-4
c =int((n-i)/2)#重要 c变量的位置和结果 如果写在这里 c变量值是固定的 每次循环都不会变的
for i in range(1,n+1,2):#1,3,5
for _ in range(c):#0,1
print(' ',end ='')
for _ in range(i):
print('*',end ='')
print()
结果
*
***
*****
*******
n = 7
b = n-4
for i in range(1,n+1,2):#1,3,5
c =int((n-i)/2)#重要 c变量的位置和结果 如果写在这里 c变量值会随着循环依次变化的
for _ in range(c):#0,1
print(' ',end ='')
for _ in range(i):
print('*',end ='')
print()
结果
*
***
*****
*******
判断 n 是否为丑数
n = 6
if (n%2==0 and n%3==0) or (n%5==0 and n%2==0) or (n%5==0 and n%3==0) :
if n %4!=0:
for i in range(6,n):
if n%i == 0:
print('不是丑数')
break
else:
print('是丑数')
else:
print('不是丑数')
else:
print('不是丑数')
求a,b的最大公倍数和最小公约数
# 做错了'''0v0''''
a = 12
b = 30
while 1:
if b%a!= 0:
b%=a
if a%b!= 0:
a%=b
else:
print(a//b)
break
else:
print(b//a)
break
5767(b)÷4453(a)=1余1314(b)
4453(a)÷1314(b)=3余511(a)
1314(b)÷511(a)=2余292(b)
511(a)÷292(b)=1余219(a)
292(b)÷219(a)=1余73(b)
219(a)÷73(b)=3...0(a)