需求1:打印九九乘法表!
for m in range(1,10): for n in range(1,10): if m<=n: print(‘%s×%s=%s‘%(m,n,n*m),end=‘ ‘) print() >>1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9 >>2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18 >>3×3=9 3×4=12 3×5=15 3×6=18 3×7=21 3×8=24 3×9=27 >>4×4=16 4×5=20 4×6=24 4×7=28 4×8=32 4×9=36 >>5×5=25 5×6=30 5×7=35 5×8=40 5×9=45 >>6×6=36 6×7=42 6×8=48 6×9=54 >>7×7=49 7×8=56 7×9=63 >>8×8=64 8×9=72 >>9×9=81
需求2:打印斐波拉契数列!
# 斐波那契数列----又称为黄金分割数列,以兔子繁殖为例子而引入,有成“兔子数列”。这个数列从第3项开始,每一项都等于前两项之和。 # 在数学上以递推的方法定义: # F(1)=1 # F(2)=1 # F(n)=F(n-1)+F(n-2)(n>=3) # 需求:创建一个函数,用户输入任意数字,返回第N项斐波那契数字,当用户输入数字<=0,报错! num_in = int(input("请输入数字!")) def fib(num): if num <= 0: raise Exception("数字应该大于0!") # 非循环中的异常处理 if num == 1 or num == 2: return 1 else: return fib(num - 1) + fib(num - 2) print(fib(num_in)) >>请输入数字!1 >>1
需求3:格式化输出当前时间(北京时间),暂停1秒。
import time demo = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) # demo2 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) # 放在前面的话,time.sleep(1)不会将时间滞后 print(f"前面的时间:{demo}") time.sleep(1) demo1 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) demo2 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) print(f"后1秒的时间:{demo1}") print(f"后1秒的时间:{demo2}") >>前面的时间:2021-07-27 15:55:16 >>后1秒的时间:2021-07-27 15:55:17 >>后1秒的时间:2021-07-27 15:55:17
需求4:用python写一个脚本语言,计算奇数1+3+5......i的值(i作为输入参数)
while True: try: i = input("请输入想要测试的奇数:") if i == "q": exit() i = int(i) if i%2 == 1: summ = 0 for j in range(1,i+1,2): # print(j) summ = summ + j print(summ) elif i%2 != 1: print("请输入奇数!") else: print("出错啦!") except Exception as e: print("奇数!例如:1、3、5...") >> 请输入想要测试的奇数:8 >>请输入奇数! >>请输入想要测试的奇数:hh >>奇数!例如:1、3、5... >>请输入想要测试的奇数:9 >>25 >>请输入想要测试的奇数:q
需求5:从键盘输入一个3位整数,计算并输出其百位、十位和个位上的数字。
# 方法1: x = input(‘请输入一个三位整数!:‘) #从键盘输入字符串 x = int(x) # 将字符串转换为整数 a = x // 100 # 获取百位上数字 b = x // 10 % 10 # 获取十位上数字 c = x % 10 # 获取个位上数字 print(‘百位:‘, a, ‘十位:‘, b, ‘个位:‘, c) >>请输入一个三位整数!:365 >>百位: 3 十位: 6 个位: 5
# 方法2:使用map()函数 x = input(‘请输入一个三位整数: ‘) a, b, c = map(int, x) print(‘百位: ‘, a, ‘十位:‘, b, ‘个位:‘, c) >>请输入一个三位整数: 400 >>百位: 4 十位: 0 个位: 0
需求6:有1,2,3,4四个数字,能组成多少个互不相同且无重复的数字!
方法1; total = 0 for i in range(1, 5): for j in range(1, 5): for k in range(1, 5): if ((i != j) and (j != k) and (k != i)): # print(i, j, k) total += 1 print(total) >>24
需求7:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
n = 0 while (n + 1) ** 2 - n * n <= 168: n += 1 print(n + 1) >>85
需求8:输入某年某月某日,判断这一天是这一年的第几天?
def isLeapYear(y): return (y % 400 == 0 or (y % 4 == 0 and y % 100 != 0)) DofM = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30] res = 0 year = int(input(‘Year:‘)) month = int(input(‘Month:‘)) day = int(input(‘day:‘)) if isLeapYear(year): DofM[2] += 1 for i in range(month): res += DofM[i] print(res + day) >>Year:2021 >>Month:08 >>day:07 >>219
需求9:输入三个整数,请把这三个数从小到大输出!
方法1: raw = [] for i in range(3): x = int(input(‘整数%d: ‘ % (i+1))) raw.append(x) for i in range(len(raw)): for j in range(i, len(raw)): if raw[i] > raw[j]: raw[i], raw[j] = raw[j], raw[i] print(raw) >>整数1: 12 >>整数2: 3 >>整数3: 56 >>[3, 12, 56]
# 方法2: raw2 = [] for i in range(3): x = int(input(‘整数%d: ‘ % (i+1))) raw2.append(x) print(sorted(raw2)) >>整数1: 45 >>整数2: 23 >>整数3: 78 >>[23, 45, 78]
需求10:判断101-200之间有多少个素数,并输出所有素数!
# 方法1: import math for i in range(1, 10): flag = 0 for j in range(2, round(math.sqrt(i)) + 1): if i % j == 0: flag = 1 break if flag: continue print(i) >>1 >>2 >>3 >>5 >>7
# 方法2: import math for i in range(1,10): for j in range(2,round(math.sqrt(i))+1): if i%j==0: break else: print(i) >>1 >>2 >>3 >>5 >>7
需求11:打印出100-1000中所有的“水仙花数”,所谓的水仙花数是指一个三位数,其中各位数字的立方和等于该数本身。
例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
for i in range(100,1000): s=str(i) one=int(s[-1]) ten=int(s[-2]) hun=int(s[-3]) if i == one**3+ten**3+hun**3: print(i) >>153 >>370 >>371 >>407
需求12:分数归档,学习成绩>=90的同学用A表示,60-89的同学用B表示,60以下用C表示!
points = int(input(‘输入分数:‘)) if points >= 90: grade = ‘A‘ elif points < 60: grade = ‘C‘ else: grade = ‘B‘ print(grade) >>60 >>B
需求13:输出指定格式日期!
import datetime print(datetime.date.today()) # 获取当前日期 print(datetime.date(2021,8,5)) print(datetime.date.today().strftime(‘%d/%m/%Y‘)) >>2021-08-07 >>2021-08-05 >>07/08/2021
需求14:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数!
string = input("输入字符串:") alp = 0 num = 0 spa = 0 oth = 0 for i in range(len(string)): if string[i].isspace(): spa += 1 elif string[i].isdigit(): num += 1 elif string[i].isalpha(): alp += 1 else: oth += 1 print(‘空格: ‘, spa) print(‘数字: ‘, num) print(‘英文字母: ‘, alp) print(‘其他: ‘, oth) >>输入字符串:qweq为等等 ##123125jdsasdlfj >>空格: 4 >>数字: 6 >>英文字母: 16 >>其他: 2
需求15:求a+aa+aaa+aaaa+...的值,其中a为一个数字。例如:2+22+222+...!
a = input(‘被加数字:‘) n = int(input(‘加几次?:‘)) res = 0 for i in range(n): res += int(a) a += a[0] print(‘结果是:‘, res) >>被加数字:5 >>加几次?:6 >>结果是: 617280
需求16: