• Python
  • Python 基础编程实践学习笔记

  • @ 2025-7-26 10:20:37

Python 基础编程实践学习笔记

一、前言

这些题目围绕 Python 基础语法(输入输出、循环、条件判断 )展开,通过解决实际小问题,能帮我们熟悉 Python 编程思路,掌握数字处理、逻辑判断等常用操作,快来一起学习吧!

二、知识储备

(一)输入输出

  • input():获取用户在控制台输入的内容,得到的是字符串类型,如需数字等其他类型,要进行转换,比如int(input())转成整数 。
  • print():在控制台输出内容,end参数可指定输出末尾的字符,默认是换行符\n,像print(内容, end=" ")能让输出后不换行,用空格结尾 。

(二)循环结构

  • while循环:只要条件为True就重复执行代码块,条件一般是和变量变化相关的表达式,比如while n != 0:,随着n的值改变,控制循环何时停止 。
  • for循环:常用于遍历序列(列表、 range 生成的序列等 ),for i in range(1, n+1)里,range(1, n+1)会生成从 1 到n的整数序列,依次赋值给i执行循环体 。

(三)条件判断

if-elif-else语句:根据不同条件执行不同代码块,条件表达式结果为True时,对应的代码块就会执行,可用来处理多种分支情况,比如根据月份、年份是否为闰年判断天数,根据重量、是否加急计算邮费等 。

(四)算术运算

  • 取余运算%:计算除法的余数,像n % 10能拿到整数n的个位数字 。
  • 整除运算//:对除法结果向下取整,n // 10可去掉整数n的个位数字 。

三、题目实战与解析

(一)分离整数的各个数位

题目要求:输入一个整数,从个位开始分离出每一位数字,按低位到高位输出,数字间用空格分隔。
代码实现

# 获取用户输入的整数,转成 int 类型
n = int(input())  
# 当 n 不等于 0 时,持续循环分离数字
while n != 0:  
    # % 是取余运算,n % 10 得到 n 的个位数字,end=" " 让输出后用空格隔开,不换行
    print(n % 10, end=" ")  
    # // 是整除运算,n // 10 去掉 n 的个位数字,更新 n 的值
    n = n // 10  

代码解析

  • 先通过input()获取输入并转成整数n
  • while循环判断n是否为 0,不为 0 就执行循环体。n % 10拿到个位数字输出,n = n // 10n去掉个位,下次循环处理剩下的高位数字,直到n变成 0,循环结束,这样就从低位到高位把每一位数字分离输出啦。

(二)求阶乘的和

题目要求:输入正整数n1 < n < 12 ),计算1! + 2! + 3! + … + n!的和并输出。
代码实现

# 获取输入的整数 n
n = int(input())  
# 初始化阶乘和为 0
sum_result = 0  
# 外层 for 循环,i 从 1 到 n 依次取值,计算每个数的阶乘
for i in range(1, n + 1):  
    # 初始化每个数的阶乘为 1,因为 1 的阶乘是 1,乘法起始值设为 1 合理
    jie = 1  
    # 内层 for 循环,计算 i 的阶乘,j 从 1 到 i 依次相乘
    for j in range(1, i + 1):  
        jie = jie * j  
    # 把每个数的阶乘加到总和里
    sum_result += jie  
# 输出最终阶乘的和
print(sum_result)  

代码解析

  • 外层for循环控制要计算阶乘的数(从 1 到n )。
  • 内层for循环通过累乘计算单个数字的阶乘,比如i=3时,j从 1 到 3,jie = 1*1*2*3得到 3 的阶乘 。
  • 每次算出一个数的阶乘,就加到sum_result里,循环结束后,sum_result就是所有阶乘的和,最后输出。

(三)计算邮资

题目要求:根据邮件重量和是否加急算邮费。重量 1000 克内(含 1000 克 )基本费 8 元;超 1000 克部分,每 500 克加 4 元,不足 500 克按 500 克算;加急(字符y )多收 5 元,不加急(字符n )不收。
代码实现

# 拆分输入,分别拿到重量(转成整数)和是否加急的字符
zhong, jia = input().split()  
zhong = int(zhong)  
# 初始化邮费为 0
p = 0  
# 判断重量是否在 1000 克及以内
if zhong <= 1000:  
    p = 8  
else:
    # 算出超过 1000 克的部分
    zhong = zhong - 1000  
    # 判断超出部分除以 500 是否是整数,是整数的情况
    if int(zhong / 500) == zhong / 500:  
        p = 8 + int(zhong / 500) * 4  
    else:
        # 不是整数,按多一个 500 克算,所以要 +1
        p = 8 + (int(zhong / 500) + 1) * 4  
# 判断是否加急,是(字符 y )的话邮费加 5
if jia == 'y':  
    p += 5  
# 输出最终邮费
print(p)  

代码解析

  • 先用split()拆分输入,把重量转成整数zhong,拿到是否加急的字符jia
  • 条件判断重量是否超 1000 克,没超就直接设邮费为 8 元;超了就先算超出部分,再判断超出部分对应几个 500 克,算出超重费用,加上基础费 8 元得到基础邮费 。
  • 最后看是否加急,加急就给邮费加 5 元,然后输出最终邮费。

(四)每月天数

题目要求:输入年份和月份,输出该月的天数,要考虑平年、闰年对 2 月天数的影响。
代码实现

# 拆分输入的年和月,转成整数
y, m = list(map(int, input().split()))  
# 先假设 2 月是平年,天数 28 天
two = 28  
# 判断是否是闰年,更新 2 月天数
if (y % 100 == 0 and y % 400 == 0) or (y % 100 != 0 and y % 4 == 0):  
    two = 29  
# 判断月份是不是 2 月,是就输出对应的 2 月天数
if m == 2:  
    print(two)  
# 判断是不是 1、3、5、7、8、10、12 月,这些月有 31 天
elif m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:  
    print(31)  
# 剩下的月份(4、6、9、11 月 ),有 30 天
else:  
    print(30)  

代码解析

  • map(int, input().split())把输入的年和月转成整数,用list转成列表后拆分成y(年 )和m(月 ) 。
  • 先假设 2 月是平年 28 天,然后通过条件判断年份是否为闰年(整百年能被 400 整除,非整百年能被 4 整除 ),是闰年就把two改成 29 。
  • 接着用if-elif-else根据月份判断天数,2 月输出two(平年 28、闰年 29 ),1、3 等月份输出 31,剩下的输出 30 。

四、总结

通过这几个题目,我们练习了 Python 输入输出、循环、条件判断的基本用法,还结合算术运算处理数字分离、阶乘计算、邮费规则、月份天数判断等场景。要多动手练习,熟练掌握这些基础语法,后续遇到更复杂编程问题也能轻松应对,继续加油呀,多敲代码就能越来越厉害!

1 条评论

  • @ 2025-7-26 10:22:46

    Python 判断平年和闰年教程

    一、什么是平年和闰年

    小朋友们,我们都知道一年有 365 天或者 366 天。其中一年有 365 天的年份叫做平年,一年有 366 天的年份叫做闰年。那为什么会有这样的区别呢?主要是因为地球绕太阳转一圈的时间并不是刚好 365 天,而是大约 365.24219 天,为了让我们的日历和地球公转的时间更接近,就有了平年和闰年的规定。

    在闰年的时候,多出来的一天会加在 2 月份,平年的 2 月有 28 天,闰年的 2 月有 29 天哦。

    二、判断平年和闰年的规则

    判断一个年份是平年还是闰年,有这样的规则:

    1. 普通的年份(不是整百数的年份,比如 2024 年、2031 年 ),如果能被 4 整除,那这个年份就是闰年;如果不能被 4 整除,就是平年 。比如 2024 除以 4 等于 506,没有余数,所以 2024 年是闰年 。
    2. 当遇到整百数的年份(年份末尾是两个 0 的,像 1900 年、2000 年 ),就需要能被 400 整除才是闰年,要是不能被 400 整除,那就是平年 。比如说 1900 除以 400 等于 4.75,不能整除,所以 1900 年是平年;而 2000 除以 400 等于 5,可以整除,所以 2000 年是闰年 。

    三、用 Python 代码判断平年和闰年

    下面我们就用 Python 来写一段程序,让电脑帮我们判断一个年份是平年还是闰年。

    # 让小朋友输入一个年份,input() 函数会获取小朋友在键盘上输入的内容,
    # 因为输入的内容默认是文字(字符串)类型,所以我们用 int() 函数把它转换成数字(整数)类型,方便后续计算
    year = int(input("小朋友,请输入一个年份,让我们来看看它是平年还是闰年吧:"))
    
    # 用条件判断语句 if 来判断年份是不是整百数
    if year % 100 == 0:  
        # 如果是整百数,再判断它能不能被 400 整除
        if year % 400 == 0:  
            print(year, "年是闰年")
        else:
            print(year, "年是平年")
    else:
        # 如果不是整百数,就判断它能不能被 4 整除
        if year % 4 == 0:  
            print(year, "年是闰年")
        else:
            print(year, "年是平年")
    

    代码解析

    1. 第一行代码year = int(input("小朋友,请输入一个年份,让我们来看看它是平年还是闰年吧:")),就好像我们在问小朋友“你想判断哪个年份呀?”,小朋友输入的年份,电脑会先把它当成一串文字,然后int()函数就像一个小魔法,把这串文字变成数字,存到year这个小盒子(变量 )里。
    2. 接下来的if语句if year % 100 == 0:,是在看这个年份是不是整百数。%这个符号在 Python 里叫取余符号,year % 100就是算year除以 100 以后剩下的数。如果剩下的数是 0,那就说明这个年份是整百数,比如 2000 除以 100 没有余数,就是整百数 。
    3. 当判断出是整百数后,再用里面的if语句if year % 400 == 0:判断它能不能被 400 整除。要是能整除,就打印(显示 )出这个年份是闰年;要是不能整除,就打印出这个年份是平年 。
    4. 如果一开始判断出来不是整百数,就执行else后面的代码,用if year % 4 == 0:判断它能不能被 4 整除,能被 4 整除就是闰年,不能被 4 整除就是平年 。

    四、总结

    小朋友们,通过上面的代码,我们就可以让电脑快速地帮我们判断一个年份是平年还是闰年啦。记住判断的规则,多动手试试,以后遇到关于年份的问题,你就能轻松解决啦!

    • 1