当前位置:   article > 正文

40个Python入门小程序_python小程序

python小程序

有不少同学学完Python后仍然很难将其灵活运用。我整理 37 个Python入门的小程序。在实践中应用Python会有事半功倍的效果。

例子1:华氏温度转换为摄氏温度

华氏温度转摄氏温度的公式:C = (F - 32) / 1.8。本例考察Python的加减乘除运算符。

  1. """
  2. 将华氏温度转换为摄氏温度
  3. """
  4. f = float(input('输入华氏温度: '))
  5. c = (f - 32) / 1.8
  6. print('%.1f 华氏度 = %.1f 摄氏度' % (f, c))

例子2:计算圆的周长和面积

输入半径,计算圆的半径和面积,圆周长公式:2*π*r,面试公式:π*r^2

  1. """
  2. 半径计算圆的周长和面积
  3. """
  4. radius = float(input('输入圆的半径: '))
  5. perimeter = 2 * 3.1416 * radius
  6. area = 3.1416 * radius * radius
  7. print('周长: %.2f' % perimeter)
  8. print('面积: %.2f' % area)

例子3:实现一元一次函数

实现数学里的一元一次函数:f(x) = 2x + 1

  1. """
  2. 一元一次函数
  3. """
  4. x = int(input('输入x:'))
  5. y = 2 * x + 1
  6. print('f(%d) = %d' % (x, y))

例子4:实现二元二次函数

实现数学里的二元二次函数:f(x, y) = 2x^2 + 3y^2 + 4xy,需要用到指数运算符**

  1. """
  2. 二元二次函数
  3. """
  4. = int(input('输入x:'))
  5. = int(input('输入y:'))
  6. = 2 * x ** 2 + 3 * y ** 2 + 4 * x * y
  7. print('f(%d, %d) = %d' % (x, y, z))

例子5:分离整数的个位数

将一个正整数的个位数,以及除个位数外的部分分离。需要用到模(取余数)运算符%,和整除运算符//

  1. """
  2. 分离整数个位数
  3. """
  4. x = int(input('输入整数:'))
  5. single_dig = x % 10
  6. exp_single_dig = x // 10
  7. print('个位数: %d' % single_dig)
  8. print('除个位数外: %d' % exp_single_dig)

例子6:实现一个累加器

实现一个简单的累加器,可以接受用户输入3个数字,并将其累加。需要用到复合赋值运算符:+=

  1. """
  2. 累加器 v1.0
  3. """
  4. s = 0
  5. x = int(input('输入整数:'))
  6. s += x
  7. x = int(input('输入整数:'))
  8. s += x
  9. x = int(input('输入整数:'))
  10. s += x
  11. print('总和:%d' % s)

例子7:判断闰年

输入年份,判断是否是闰年。闰年判断方法:能被4整除,但不能被100整除;或者能被 400 整除。需要用到算术运算符逻辑运算符

  1. """
  2. 判断闰年
  3. """
  4. year = int(input('输入年份: '))
  5. is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
  6. print(is_leap)

例子8:判断奇偶数

输入一个数字,判断基数还是偶数,需要运算和if ... else结构

  1. """
  2. 判断奇偶数
  3. """
  4. in_x = int(input('输入整数:'))
  5. if in_x % 2 == 0:
  6.     print('偶数')
  7. else:
  8.     print('奇数')

例子9:猜大小

用户输入一个 1-6 之间的整数,与程序随机生成的数字作比较。需要用到if ... elif ... else结构

  1. """
  2. 猜大小
  3. """
  4. import random
  5. in_x = int(input('输入整数:'))
  6. rand_x = random.randint(16)
  7. print('程序随机数: %d' % rand_x)
  8. if in_x > rand_x:
  9.     print('用户赢')
  10. elif in_x < rand_x:
  11.     print('程序赢')
  12. else:
  13.     print('打平')

说明:random是Python的随机数模块,调用 random.randint 可以生成一个随机数,类型为 int。randint(1, 6) 表示生成 [1, 6] 之间的随机数。

例子10:判断闰年

之前判断闰年是输出TrueFalse,这次需要输出文字版闰年平年

  1. """
  2. 判断闰年
  3. """
  4. year = int(input('输入年份: '))
  5. if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
  6.     print('闰年')
  7. else:
  8.     print('平年')

例子11:摄氏度与华氏度互转

之前做过华氏度转摄氏度,现在通过分支结构实现二者互转。

  1. """
  2. 摄氏度与华氏度互换
  3. """
  4. trans_type = input('输入转摄氏度还是华氏度:')
  5. if trans_type == '摄氏度':  # 执行华氏度转摄氏度的逻辑
  6.     f = float(input('输入华氏温度:'))
  7.     c = (f - 32/ 1.8
  8.     print('摄氏温度为:%.2f' % c)
  9. elif trans_type == '华氏度':  # 执行摄氏度转华氏度的逻辑
  10.     c = float(input('输入摄氏温度:'))
  11.     f = c * 1.8 + 32
  12.     print('华氏温度为:%.2f' % f)
  13. else:
  14.     print('请输入 华氏度 或 摄氏度')

例子12:是否构成三角形

输入三个边长度,判断是否构成三角形。构成三角形的条件:两边之和大于第三边

  1. """
  2. 是否构成三角形
  3. """
  4. a = float(input('输入三角形三条边:\n a = '))
  5. b = float(input(' b = '))
  6. c = float(input(' c = '))
  7. if a + b > c and a + c > b and b + c > a:
  8.     print('能够构成三角形')
  9. else:
  10.     print('不能构成三角形')

例子13:输出成绩等级

输入成绩分数,输出分数对应的等级。

>=90分得A,[80, 90) 得B,[70, 80)得C,[60, 70)得D,< 60得E

  1. """
  2. 输出成绩等级
  3. """
  4. score = float(input('请输入成绩: '))
  5. if score >= 90:
  6.     grade = 'A'
  7. elif score >= 80:
  8.     grade = 'B'
  9. elif score >= 70:
  10.     grade = 'C'
  11. elif score >= 60:
  12.     grade = 'D'
  13. else:
  14.     grade = 'E'
  15. print('成绩等级是:', grade)

例子14:计算提成

某企业的奖金根据销售利润按照如下规则计算提成。输入销售利润,计算奖金。

利润 <= 10万,奖金可提10%

10万 < 利润 <= 20万,高出10万的部分提 7.5%

20万 < 利润 <= 40万,高出20万元的部分提5%

40万 < 利润 <= 60万,高出40万元的部分提3%

利润 > 60万,超过60万的部分提1%

  1. """
  2. 计算提成 v1.0
  3. """
  4. profit = float(input('输入销售利润(元): '))
  5. if profit <= 100000:
  6.     bonus = profit * 0.1
  7. elif profit <= 200000:
  8.     bonus = 100000 * 0.1 + (profit - 100000* 0.075
  9. elif profit <= 400000:
  10.     bonus = 100000 * 0.1 + 200000 * 0.075 + (profit - 200000* 0.05
  11. elif profit <= 600000:
  12.     bonus = 100000 * 0.1 + 200000 * 0.075 + 400000 * 0.05 + (profit - 400000* 0.03
  13. else:
  14.     bonus = 100000 * 0.1 + 200000 * 0.075 + 400000 * 0.05 + 600000 * 0.03 + (profit - 600000* 0.01
  15. print('奖金:%.2f' % bonus)

例子15:实现分段函数

数学中经常会见到分段函数,用程序实现如下分段函数

  1. """
  2. 分段函数
  3. """
  4. = int(input('输入:'))
  5. if x > 0:
  6.     y = 3 * x ** 2 + 4
  7. else:
  8.     y = 2 * x + 2
  9. print('f(%d) = %d' % (x, y))

例子16:1-n求和

输入正整数n,计算 1 + 2 + ... + n的结果。

  1. """
  2. 1-n求和
  3. """
  4. n = int(input('输入n:'))
  5. s = 0
  6. while n >= 1:
  7.     s += n
  8.     n -= 1
  9. print('1-%d 求和结果: %d' % (n, s))

例子17:累加器 v2.0

之前实现的累加器只能支持 3 个数相加,现在需要去掉该限制,可以无限相加。

  1. """
  2. 累加器 v1.0
  3. """
  4. s = 0
  5. while True:
  6.     in_str = input('输入整数(输入q,则退出):')
  7.     if in_str == 'q':
  8.         break
  9.     x = int(in_str)
  10.     s += x
  11.     print('加和:%d' % s)

例子18:猜数游戏

程序随机生成一个正整数,用户来猜,程序根据猜的大小给出相应的提示。最后,输出用户猜了多少次才猜中。

  1. """
  2. 猜数游戏
  3. """
  4. import random
  5. answer = random.randint(1100)
  6. counter = 0
  7. while True:
  8.     counter += 1
  9.     number = int(input('猜一个数字(1-100): '))
  10.     if number < answer:
  11.         print('再大一点')
  12.     elif number > answer:
  13.         print('再小一点')
  14.     else:
  15.         print('猜对了')
  16.         break
  17. print(f'共猜了{counter}次')

例子19:打印乘法口诀表

  1. """
  2. 打印乘法口诀表
  3. """
  4. for i in range(110):
  5.     for j in range(1, i + 1):
  6.         print(f'{i}*{j}={i * j}', end='\t')

例子20:是否是素数

输入一个正整数,判断是否是素数。素数定义:大于1的自然数中,只能被1和它本身整除的自然数。如:3、5、7

  1. """
  2. 判断是否是素数
  3. """
  4. num = int(input('请输入一个正整数: '))
  5. end = int(num // 2+ 1  # 只判断前半部分是否能整除即可,前半部分没有能整除的因此,后半部分肯定也没有
  6. is_prime = True
  7. for x in range(2end):
  8.     if num % x == 0:
  9.         is_prime = False
  10.         break
  11. if is_prime and num != 1:
  12.     print('素数')
  13. else:
  14.     print('不是素数')

range(2, end) 可以生成 2, 3, ... end序列,并依次赋值给 x 执行循环。range还有如下用法

range(10):生成 0, 1, 2, ... 9 序列

range(1, 10, 2):生成 1, 3, 5, ... 9 序列

例子21:斐波那契数列

输入正整数 n,计算第 n 位的斐波那契数。斐波那契数列当前位置的数字等于前两个数字之和,1 1 2 3 5 8 ...

  1. """
  2. 斐波那契数列 v1.0
  3. """
  4. n = int(input('输入n: '))
  5. a, b = 01
  6. for _ in range(n):
  7.     a, b = b, a + b
  8. print(f'第 {n} 位斐波那契数是:{a}')

例子22:水仙花数

水仙花数是一个3位数,该数字每个位上数字的立方和正好等于它本身,例如:

  1. """
  2. 水仙花数
  3. """
  4. for num in range(1001000):
  5.     low = num % 10
  6.     mid = num // 10 % 10
  7.     high = num // 100
  8.     if num == low ** 3 + mid ** 3 + high ** 3:
  9.         print(num)

例子23:猴子吃桃

猴子第一天摘了 n 个桃子,当天吃了一半,还不瘾,又多吃了一个

第二天早上又将剩下的桃子吃掉一半,又多吃了一个

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,剩下一个桃子。求第一天共摘了多少。

反向思考:第 n-1 天的桃子 = (第n天桃子 + 1) * 2,从 第 10 天循环计算道第一天即可

  1. """
  2. 猴子吃桃
  3. """
  4. peach = 1
  5. for i in range(9):
  6.     peach = (peach + 1) * 2
  7. print(peach)

例子24:打印菱形

输出如下菱形图案

***

*****

*******

*****

***

  1. """
  2. 输出菱形
  3. """
  4. for star_num in range(172):
  5.     blank_num = 7 - star_num
  6.     for _ in range(blank_num // 2):
  7.         print(' 'end='')
  8.     for _ in range(star_num):
  9.         print('*'end='')
  10.     for _ in range(blank_num // 2):
  11.         print(' 'end='')
  12.     print()
  13. for _ in range(7):
  14.     print('*'end='')
  15. print()
  16. for star_num in range(50, -2):
  17.     blank_num = 7 - star_num
  18.     for _ in range(blank_num // 2):
  19.         print(' 'end='')
  20.     for _ in range(star_num):
  21.         print('*'end='')
  22.     for _ in range(blank_num // 2):
  23.         print(' 'end='')
  24.     print()

例子25:计算提成 v2.0

将 例子14:计算提成改用列表+循环的方式,代码更简洁,并且可以处理更灵活。

  1. """
  2. 计算提成 v2.0
  3. """
  4. profit = int(input('输入销售利润(元): '))
  5. bonus = 0
  6. thresholds = [100000200000400000600000]
  7. rates = [0.10.0750.050.030.01]
  8. for i in range(len(thresholds)):
  9.     if profit <= thresholds[i]:
  10.         bonus += profit * rates[i]
  11.         break
  12.     else:
  13.         bonus += thresholds[i] * rates[i]
  14. bonus += (profit - thresholds[-1]) * rates[-1]
  15. print('奖金:%.2f' % bonus)

例子26:某天是一年中的第几天

输入某个日期,计算当天是一年中的第几天

  1. """
  2. 计算某天是一年中的第几天
  3. """
  4. months = [0312831303130313130313031]
  5. res = 0
  6. year = int(input('年份: '))
  7. month = int(input('月份: '))
  8. day = int(input('几号: '))
  9. if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: # 闰年二月 29 天
  10.     months[2+= 1
  11. for i in range(month):
  12.     res += months[i]
  13. print(res+day)

例子27:回文字符串

判断一个字符串是否是回文串,回文串是一个正读和反读都一样的字符串,如:level

  1. """
  2. 判断是否是回文串
  3. """
  4. = input('输入字符串:')
  5. = 0
  6. = -1
  7. s_len = len(s)
  8. flag = True
  9. while i != s_len + j:
  10.     if s[i] != s[j]:
  11.         flag = False
  12.         break
  13.     i += 1
  14.     j += -1
  15. print('是回文串' if flag else '不是回文串')

例子28:个人信息输入输出

不定义类的情况下,可以将个人信息保存在元祖中

  1. students = []
  2. while True:
  3.     input_s = input('输入学生信息(学号 姓名 性别),空格分隔(输入q,则退出):')
  4.     if input_s == 'q':
  5.         break
  6.     input_cols = input_s.split(' ')
  7.     students.append((input_cols[0], input_cols[1], input_cols[2]))
  8. print(students)

例子29:个人信息排序

个人信息保存在元组中,并按照学号、姓名或者性别排序。

  1. """
  2. 个人信息排序
  3. """
  4. students = []
  5. cols_name = ['学号''姓名''性别']
  6. while True:
  7.     input_s = input('输入学生信息(学号 姓名 性别),空格分隔(输入q,则退出):')
  8.     if input_s == 'q':
  9.         break
  10.     input_cols = input_s.split(' ')
  11.     students.append((input_cols[0], input_cols[1], input_cols[2]))
  12. sorted_col = input('输入排序属性:')
  13. sorted_idx = cols_name.index(sorted_col)  # 根据输入的属性获取元组的索引
  14. print(sorted(students, key=lambda x: x[sorted_idx]))

例子30:对输入的内容去重

对输入的内容去重,直接用 Python中 Set集合实现

  1. """
  2. 去重
  3. """
  4. input_set = set()
  5. while True:
  6.     s = input('输入内容(输入q,则退出):')
  7.     if s == 'q':
  8.         break
  9.     input_set.add(s)
  10. print(input_set)

例子31:输出集合交集

给定Python web工程师算法工程师需要的技能,计算二者交集。

  1. """
  2. 集合交集
  3. """
  4. python_web_programmer = set()
  5. python_web_programmer.add('python基础')
  6. python_web_programmer.add('web知识')
  7. ai_programmer = set()
  8. ai_programmer.add('python基础')
  9. ai_programmer.add('机器学习')
  10. inter_set = python_web_programmer.intersection(ai_programmer)
  11. print('技能交集:'end='')
  12. print(inter_set)

Python set集合除了能计算交集,还可以计算并集、补集

例子32:猜拳游戏

用程序实现石头剪刀布游戏。

  1. """
  2. 猜拳游戏
  3. """
  4. 0代表布,1代表剪刀,2代表石头
  5. import random
  6. rule = {'布'0'剪刀'1'石头'2}
  7. rand_res = random.randint(02)
  8. input_s = input('输入石头、剪刀、布:')
  9. input_res = rule[input_s]
  10. win = True
  11. if abs(rand_res - input_res) == 2:  # 相差2说明是布和石头相遇,出布一方胜
  12.     if rand_res == 0:
  13.         win = False
  14. elif rand_res > input_res:  # 相差1的情况谁大谁赢
  15.     win = False
  16. print(f'程序出:{list(rule.keys())[rand_res]},输入:{input_res}')
  17. if rand_res == input_res:
  18.     print('平')
  19. else:
  20.     print('赢' if win else '输')

例子33:字典排序

字典的key是姓名,value是身高,现在需要按照身高对字典重新排序。

  1. """
  2. 字典排序
  3. """
  4. hs = {'张三'178'李四'185'王麻子'175}
  5. print(dict(sorted(hs.items(), key=lambda item: item[1])))

例子34:二元二次函数 v2.0

将二元二次函数封装在函数中,方便调用

  1. """
  2. 二元二次函数 v2.0
  3. """
  4. def f(x, y):
  5.     return 2 * x ** 2 + 3 * y ** 2 + 4 * x * y
  6. print(f'f(1, 2) = {f(1, 2)}')

例子35:斐波那契数列 v2.0

使用递归函数的形式生成斐波那契数列

  1. """
  2. 递归版斐波那契数列
  3. """
  4. def fib(n):
  5.     return 1 if n <= 2 else fib(n-1) + fib(n-2)
  6. print(f'第 10 个斐波那契数是:{fib(10)}')

例子36:阶乘

定义一个函数,实现阶乘。n的阶乘定义:n! = 1*2*3* ... n

  1. """
  2. 阶乘函数
  3. """
  4. def fact(n):
  5.     return 1 if n == 1 else fact(n-1) * n
  6. print(f'10! = {fact(10)}')

例子37:实现 range 函数

编写一个类似于 Python中的 range 功能的函数

  1. """
  2. range函数
  3. """
  4. def range_x(start, stop, step):
  5.     res = []
  6.     while start < stop:
  7.         res.append(start)
  8.         start += step
  9.     return res

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/92085
推荐阅读
相关标签
  

闽ICP备14008679号