❤️博客主页: iknow181
🔥系列专栏: Python、JavaSE、JavaWeb、CCNP
🎉欢迎大家点赞👍收藏⭐评论✍
目录
1、输出n以内的质数
2、求n以内最大的m个质数的和,并打印这些质数以及它们的和
方法一
方法二
3、将字符串里的大小写互转
4、使用蒙特卡洛方法计算圆周率
5、给定行、列数之后生成二维数组,如下所示:
方法一:用列表
方法二:直接加
6、制作一个简单的两位整数加减法试卷生成模板
1、输出n以内的质数
n = int(input('请输入n:'))
for i in range(2, n):for j in range(2, i):if i % j == 0:breakelse:print(i,end=' ')
2、求n以内最大的m个质数的和,并打印这些质数以及它们的和
方法一
n = int(input('请输入n:'))
m = int(input('请输入m:'))
sum1 = 0
list1 = []
for i in range(2,n):for j in range(2,i):if i % j == 0:breakelse:list1.append(i)
count = len(list1)
star = count - m
if m < count:while star < count:print(list1[star])sum1 += list1[star]star += 1print(sum1)
else:print(f'{m}太多了,{n}以内最多有{count}个质数,请重新输入!')
方法二
n = int(input('请输入n:'))
m = int(input('请输入m:'))
print(f'{n}以内最大的{m}个质数:', end=" ")
sum1 = 0
count = 0
num = n
while count < m:for j in range(2, num):if num % j == 0:breakelse:print(num, end=' ')sum1 += numcount += 1num -= 1
print(f'\n这些质数和是:{sum1}')
3、将字符串里的大小写互转
ord()可将英文字母转换成ASC码的数字,小写和大写的英文字母之间相差32
chr()可将ASC码的数字转换成英文字母
例如:输入字符串"HEllO WorLD",将这个字符串中每个字母的大小写互转
str1 = input('请输入:')
print(f'输入:{str1}')
print(f'输出:', end=' ')
for i in range(len(str1)):if str1[i] >= 'A' and str1[i] <= 'Z':print(chr(ord(str1[i]) + 32), end=' ')elif str1[i] >= 'a' and str1[i] <= 'z':print(chr(ord(str1[i]) - 32), end=' ')else:print(str1[i],end=' ')
4、使用蒙特卡洛方法计算圆周率
计算过程如下: 在边长为2的正方形里,绘制一个半径为1的圆,然后模拟向正方形里随机放置豆子的过程,豆子不 能重叠,假设投进圆里的次数为:n,总的投掷次数为N 圆周率(pi)约等于4*n/N(正方形的面积为4,圆的面积为pi*r^2,两者相除,即可得到前面的 公式)
建模思想!
import random
while True:N = int(input('您要投多少次:'))n = 0count = 0while count < N:x = random.uniform(-1, 1)y = random.uniform(-1, 1)d = ((x ** 2) + (y ** 2)) ** (1 / 2)if d >= 0 and d <= 1:n += 1count += 1pi = 4 * n / Nprint(f'圆周率pi的值大约为:{pi}')con = input("continue(y/n):")if con.lower() == 'n':break
5、给定行、列数之后生成二维数组,如下所示:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
方法一:用列表
n = int(input('请输入行:'))
m = int(input('请输入列:'))
nm = n * m # 最大数
length = len(str(nm)) # 看最大是几位数
star = 1 # 初始值
for i in range(n):for j in range(m):length1 = len(str(star)) # 当前数字的位数length2 = length - length1 # 当前数字前补零的个数starlist = [str(star)]count = 0while count < length2:starlist.insert(0, '0')count += 1starstr = ''.join(starlist)print(starstr, end=' ')star += 1print()
方法二:直接加
n = int(input('请输入行:'))
m = int(input('请输入列:'))
nm = n * m # 最大数
star = 1 # 初始值
for i in range(n):for j in range(m):print('0' * (len(str(nm)) - len(str(star))) + str(star), end=' ')print(str(star).zfill(len(str(nm))), end=' ')star += 1print()
6、制作一个简单的两位整数加减法试卷生成模板
每次生成10道题,要求学生回答完毕后,给出得分,并标明哪些题目回答错误。同时询问学生是否继续进行测试,回答no即退出,回答yes即继续测试。
例如考试题目: 1. 10 + 20 = 2. 30 - 15 = 3. 45 + 70 = .... 10. 50 - 22 = 正确答案: 1. 10 + 20 = 20 2. 30 - 15 = 15 3. 45 + 70 = 115 .... 10. 50 - 22 = 28 您的得分:90 您做错的题目是: 第1道 是否继续测试(yes/no)
import random
while True:print('考试题目:')worrylist = [] # 错题编号testlist = [] # 题目列表scores = 100 # 满分100分for i in range(10):a = random.randint(10,99)b = random.randint(10,99)c = random.choice('+-')problem = f'{i + 1}. {a} {c} {b} = ' # 题目problem1 = f'{a}{c}{b}' # 式子d1 = int(input(problem)) # 输入的答案d2 = eval(problem1) # 正确答案testlist.append(f'{problem}{d2}')if d1 != d2:worrylist.append(i + 1)scores -= 10print('正确答案:')for j in testlist:print(j)print(f'您的得分:{scores}')print('您做错的题目是:')for k in worrylist:print(f'第{k}道')con = input('是否继续测试(yes/no):')if con.lower() == 'no':break