基础代码练习
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('账户被锁定')



