Python初学者练习实例(含问题分析+代码)
- 1.用一条语句判断是否为闰年
- 2.用户输入一个三位自然数,计算并输出其百位、十位和个位上的数字
- 3.给定一个正整数,判断它是否是素数
- 4.已知自然常数e的泰勒展开式是:e=1+1/1!+1/2!+1/3!+...请用迭代法计算它的第i项1/i!
- 5.输入任意两个正整数p和q,计算它们的最大公约数,并返回结果,例如p=12,q=18,返回值为6
- 6.用字典设计一个程序录入学生作业的情况,例如:{‘海航’:{‘20200322’:‘未交’,‘20200401’:‘已交’},‘国航’:{‘20200322’:‘已交’,‘20200401’:‘已交’}}
- 7.现有4门课的成绩字典如下所示,统计每个人的平均成绩,并根据平均成绩进行排序。要求按姓名检索平均成绩和排名:
- 8.编写一个函数,要求打印m行n列的平行四边形
- 9.小猴在一天摘了若干桃,当天吃掉一半多一个,第二天接着吃剩下的一半多一个,以后每天都吃掉尚存桃子的一半多一个,第七天早上只剩下1个,问小猴摘了多少个桃?
- 10.请编写面向对象程序,实现万年历Calender,它可以显示用户输入的年、月的星期日历
- 11.编写程序,生成包含20个列表,然后将前十个元素升序排列,后十个元素降序排列,并输出结果
- 12.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 13.在health.tex文件中包含健康指数如下,编写health.py模块,能够读取文件内容,并根据人工输入的体重和身高计算BMI,测算健康指数。当输入身高为0时,能够进行异常处理。文件内容:
- 14.随机生成二维数据,并以散点图的形式进行展示,模拟随机游走的过程
- 15.编写程序,生成一个包含20个随机整数的列表,然后删除所有奇数
- 16.输入某年某月某日,判断这一天是这一年的第几天?
1.用一条语句判断是否为闰年
问题分析:根据闰年的定义,能被4整除不能被100整除的或能被400整除的为闰年,根据此可以编写ifelse语句来判断。
year = int(input("请输入一个年份:"))
if (year % 4) == 0 and (year % 100) !=0 or (year % 400) == 0:
print("%s年是闰年" % year)
else:
print("%s年不是闰年" % year)
运行结果:

2.用户输入一个三位自然数,计算并输出其百位、十位和个位上的数字
问题分析:三位数的自然数想要知道其个、十、百位上的数字,可以先让他除以100,得到一个余数和商,这个商就是百位的数字,再用余数除以10,得到一个商和余数,这个商是十位的数字,余数为个位的数字。
代码:
x = input('请输入一个三位数:')
x = int(x)
a, b = divmod(x, 100)
b, c = divmod(b, 10)
#函数把除数和余数运算结果结合起来,
#返回一个包含商和余数的元组(a // b, a % b)。
print(a, b, c)
运行结果:

3.给定一个正整数,判断它是否是素数
问题分析:根据素数的定义:只能被 1 和它本身整除的数叫做素数,来编写函数,运用ifelse语句进行判断,先判断是否大于1,大于1则继续判断,否则推出,确定大于1后再判断是否能被大于等于2的数整除,不能则为素数,能的话就不是素数。
代码:
n = int(input("请输入一个正整数n:"))
if n < 2: #判断是否大于1的整数,且1不是素数
print("%d不是素数!"%n)
else:
for i in range(2,n):
if n % i == 0: #判断2——i是否有能被整除
print("%d不是素数!"%n)
break
else:
print("%d是素数!"%n)
运行结果:

4.已知自然常数e的泰勒展开式是:e=1+1/1!+1/2!+1/3!+…请用迭代法计算它的第i项1/i!
问题分析:
可以看出该问题就是要运用python计算阶乘,根据阶乘的计算公式,可以定义一个函数,如果i=0的话结果为1,如果不等于0,则结果为i乘以该函数的参数为i-1时的值,相当于循环调用,最后得出结果,再取结果分之一,为题中要求结果。
代码:
def jiecheng(n):
if n == 0:
return 1
else:
return n * jiecheng(n - 1)
i = int(input("请输入i:"))
print(1/jiecheng(i))
运行结果:

5.输入任意两个正整数p和q,计算它们的最大公约数,并返回结果,例如p=12,q=18,返回值为6
问题分析:求解最大公约数的具体步骤为:1.整数A对整数B进行取整, 余数用整数C来表示,即C = A % ;2.如果C等于0,则C就是整数A和整数B的最大公约数;3.如果C不等于0, 将B赋值给A, 将C赋值给B ,然后进行 1, 2 两步,直到余数为0, 则可以得知最大公约数。根据该过程进行编写函数
代码:
def fun(num1, num2): # 定义一个函数, 两个形参
if num1 < num2: # 判读两个整数的大小,目的为了将大的数作为除数,小的作为被除数
num1, num2 = num2, num1 # 如果if条件满足,则进行值的交换
vari = num1 % num2 # 对2个整数进行取余数
while vari != 0: # 判断余数是否为0, 如果不为0,则进入循环
num1 = num2 # 重新进行赋值,进行下次计算
num2 = vari
vari = num1 % num2 # 对重新赋值后的两个整数取余数
print("最大公约数为:%d" % num2) # 输出
fun(12,18)
运行结果:

6.用字典设计一个程序录入学生作业的情况,例如:{‘海航’:{‘20200322’:‘未交’,‘20200401’:‘已交’},‘国航’:{‘20200322’:‘已交’,‘20200401’:‘已交’}}
问题分析:根据定义字典的知识将题中给的信息录入并输出结果。
代码:
stu1 = {
'海航':{
'20200322':'未交','20200401':'已交'}}
stu2 = {
'国航':{
'20200322':'已交','20200401':'已交'}}
print(stu1

这篇博客提供了一系列Python编程练习,包括判断闰年、处理数字位数、检查素数、计算自然常数e的泰勒展开、求最大公约数等。还涉及到字典操作、文件读取、计算BMI、散点图绘制、随机游走模拟等,适合Python初学者巩固基础知识。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=112425333&d=1&t=3&u=258a6c0de7a54010b730b86cc9dd9f6d)
409

被折叠的 条评论
为什么被折叠?



