基础代码练习
1 使用if循环输出小一秒的时间:
hour1 = int(input('请输入第一个数代表小时;')) min1 = int(input('请输入第一个数代表分钟;')) sex1 = int(input('请输入第一个数代表秒钟;')) if (0 <= sex1 < 60) or (0 <= min1 < 60) or (0 <= hour1 < 24): sex1 += 1 if sex1 == 60: sex1 = 0 min1 += 1 if min1 == 60: min1 = 0 hour1 += 1 if hour1 == 24: hour1 = 0 print('下一秒时间为%.2d:%.2d:%.2d' % (hour1, min1, sex1)) else: print('时间输入有误')
2 打印所有的水仙花数
for num1 in range(100, 999): z = num1 // 100 l = (num1 % 100) // 10 t = num1 % 10 if z ** 3 + l ** 3 + t ** 3 == num1: print(num1)
3 打印五位数的回文数,并计算个数
count = 0 for i in range(10000, 100000): a = str(i) if a[0] == a[4] and a[1] == a[3]: print(a) count += 1 print(count)
4 输入a和b,两个数字的差的不是奇数打印,如果是奇数输出两个数的差
a = int(input('请输入第一个数:')) b = int(input('请输入第二个数:')) if (a-b) % 2 == 1: print(a-b) else: print('a-b结果不是奇数')
5 输出1~100以内的奇数
for x in range(1, 100): if x % 2 == 1: print(x)
6 输⼊入任意⼀一个正整数,求他是几位数?
num = int(input('请输入一个正整数:')) x = 0 while num >= 1: num /= 10 x += 1 if num < 1: print('输入的数字的位数是', x) break
7 输出想要的斐波那契数列的数字
n = int(input('请输入您要第几个斐波那契数列:')) num1 = 1 num2 = 1 for x in range(0, n - 2): a = num1 num1 = num2 num2 = a + num1 print(num2)
8 for循环写99乘法表
for i in range(1, 10): for j in range(1, i + 1): print('%s*%s=%s' % (i, j, i * j), end=' ') print()
9 while 打印 上下两种99乘法口诀表
a = 1 while a <= 9: b = 1 while b <= a: print('%s * %s = %s ' % (b, a, a*b), end=' ') b += 1 a += 1 print('')
下99乘法表
i = 9 while i >= 1: j = 1 while j <= i: print('%d*%d=%-2d'% (j, i, j*i), end=' ') j += 1 print() i -= 1
10 打出 * 组成的等腰三角形
num = 1 while num <= 6: x = 1 num += 1 while x <= num: print("*", end="") x += 1 print()
11 要将一个不知道有多少位的正整数进行反转,例如将`12345`变成`54321`
a = int(input('请输入一个数字:')) b = len(str(a)) ret = "" for x in range(b): last = a % 10 ret = ret + chr(ord("0") + last) a = a // 10 print(ret)
12 百钱百鸡&百马百担
for x in range(0, 21): for y in range(0, 34): z = 100 - x - y if 5 * x + 3 * y + z / 3 == 100 and x + y + z == 100: print("公鸡:%d,母鸡:%d,小鸡:%d" % (x, y, z))
13 CRAPS&花旗骰
import random #添加随机变量环境 money = 10000 # 初始值为一万元 while money > 0: # 用一个容器记录一个状态 表示是否继续 go_on = False # 默认两次决胜负 # 下赌注 while True: debt = int(input('请下注:')) if 0 < debt <= money: # 下对注码 break # 停止 下注 first = random.randint(1, 6) + random.randint(1, 6) print('玩家摇出了%d点' % first) if first == 7 or first == 11: print('玩家胜利') money += debt print('剩余本金%d元' % money) elif first == 2 or first == 3 or first == 12: print('庄家胜利') money -= debt print('剩余本金%d元' % money) else: go_on = True while go_on: go_on = False two = random.randint(1, 6) + random.randint(1, 6) print('玩家又摇出了%d点' % two) if two == 7: print('庄家胜') money -= debt print('剩余本金%d元' % money) elif two == first: print('玩家胜') money += debt print('剩余本金%d元' % money) else: go_on = True print('赶紧回家,腰子要不也没了')
14 打印100以内的素数
for i in range(2, 100): for j in range(2, i): if i % j == 0: break else: print(i)
15 阶乘 求1!+2!+3!+4!+5!
n = int(input("输入要求的数字")) sums = 0 for x in range(n+1): s1 = 1 for y in range(1, x+1): s1 *= y sums += s1 print(sums)
16 国际象棋 宰相的麦子
# 定义一个变量来保存总的麦子数量,开始为0 nums = 0 # 定义一个变量,循环1-64,来代表每一个格子 i = 1 # 假设每个格子中的麦子数量为x,初始也是1 x = 1 # 循环 while i <= 64: nums += x # 总数累计上这一个格子的麦粒数 i += 1 # 下一个格子 x = x * 2 # 下一个格子的麦粒数是这一个格子的2倍 # 显示结果 print("64个格子,总的麦粒数量为:", nums)
17 判断一个数字是不是回文数
num = int(input("请输入一个五位数:")) a = num % 10 b = num // 10 % 10 c = num // 100 d = num // 1000 e = num // 10000 if a != e and b != d: print("该数字不是回文数") else: print("是回文数")
18 不断输入一个数字直到输入为0结束
a = int(input('请输入一个数字:')) while a != 0: a = int(input('请输入一个数字:'))
19 打印菱形
i = 0 a = int(input('请输入一个正奇数:')) # 菱形只有奇数才是完全对称 while i < a: if i < (a+1)/2: j = 0 while j < (a-1)/2 - i: print(" ", end="") j += 1 j = 0 while j < i+1: print("*", end=" ") j += 1 else: j = 0 while j < i - (a-1)/2: print(" ", end="") j += 1 j = 0 while j < a - i: print("*", end=" ") j += 1 print() i += 1
20 输入两个数并求出最小公倍数和最小公约数
num1 = int(input('请输入第一个整数'))
num2 = int(input('请输入第二个整数'))
num4 = num1 if num1 < num2 else num2
for x in range(num4,0,-1):
if num1 % x == 0 and num2 % x == 0:
print(x)
break
num1 = int(input('请输入第一个整数'))
num2 = int(input('请输入第二个整数'))
num4 = num1 if num1 > num2 else num2
# 最小公倍数 最小是两个数字中的最大值 最大是两个数字想乘
# 24 / 18 是否 ==0 不是 17
for x in range(num4, num1*num2+1):
if x % num1 == 0 and x % num2 == 0:
print(x)
break
21输入两个数n,a, 输出对应的结果如: n=3,a=2; 输出 2 + 22 + 222 的值,n=4,a=3; 输出 3 + 33 + 333 + 3333的值
n = int(input('请输入数字n:'))
a = int(input('请输入数字a:'))
sums = 0
sums1 = 0
for x in range(n):
sums1 = sums1*10+a
sums += sums1
print(sums)
22输入任意两个数如果第一个数小,从第一个数打印到第二个数,如果第二个数小,从第二个数打印到第一个数比如: 输入2,5,则打印:5 4 3 2
num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
c = num1 if num1 > num2 else num2
d = num1 if num1 < num2 else num2
for x in range(d, c+1):
print(x, end=' ')
23 统计100以内个位数是2并且能够被3整除的数的个数
count = 0 for x in range(1, 100): if x % 10 == 2 and x % 3 == 0: count += 1 print(x) print(count)
24一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)
# h = 8848.13米 =884813mm
count = 0
while a < 884813
a *= 2
count += 1
print(count)
25 输入密码 输错3次密码 锁住
password = input('请输入你的密码:') if password == '123456': print('请选择接下来要进行的操作') break else: print('密码错误还剩%d次机会' % (2 - x)) else: print('账户被锁定')