Python初学者练习实例(含问题分析+代码)

这篇博客提供了一系列Python编程练习,包括判断闰年、处理数字位数、检查素数、计算自然常数e的泰勒展开、求最大公约数等。还涉及到字典操作、文件读取、计算BMI、散点图绘制、随机游走模拟等,适合Python初学者巩固基础知识。
摘要由CSDN通过智能技术生成

Python初学者练习实例(含问题分析+代码)

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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值