40个Python入门小程序

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"""
分离整数个位数
"""x = int(input('输入整数:'))single_dig = x % 10
exp_single_dig = x // 10print('个位数: %d' % single_dig)
print('除个位数外: %d' % exp_single_dig)

例子6:实现一个累加器

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

"""
累加器 v1.0
"""s = 0x = int(input('输入整数:'))
s += xx = int(input('输入整数:'))
s += xx = int(input('输入整数:'))
s += xprint('总和:%d' % s)

例子7:判断闰年

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

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

例子8:判断奇偶数

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

"""
判断奇偶数
"""in_x = int(input('输入整数:'))if in_x % 2 == 0:print('偶数')
else:print('奇数')

例子9:猜大小

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

"""
猜大小
"""import randomin_x = int(input('输入整数:'))
rand_x = random.randint(1, 6)
print('程序随机数: %d' % rand_x)if in_x > rand_x:print('用户赢')
elif in_x < rand_x:print('程序赢')
else:print('打平')

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

例子10:判断闰年

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

"""
判断闰年
"""year = int(input('输入年份: '))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:print('闰年')
else:print('平年')

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

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

"""
摄氏度与华氏度互换
"""trans_type = input('输入转摄氏度还是华氏度:')if trans_type == '摄氏度':  # 执行华氏度转摄氏度的逻辑f = float(input('输入华氏温度:'))c = (f - 32) / 1.8print('摄氏温度为:%.2f' % c)
elif trans_type == '华氏度':  # 执行摄氏度转华氏度的逻辑c = float(input('输入摄氏温度:'))f = c * 1.8 + 32print('华氏温度为:%.2f' % f)
else:print('请输入 华氏度 或 摄氏度')

例子12:是否构成三角形

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

"""
是否构成三角形
"""
a = float(input('输入三角形三条边:\n a = '))
b = float(input(' b = '))
c = float(input(' c = '))
if a + b > c and a + c > b and b + c > a:print('能够构成三角形')
else:print('不能构成三角形')

例子13:输出成绩等级

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

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

"""
输出成绩等级
"""score = float(input('请输入成绩: '))
if score >= 90:grade = 'A'
elif score >= 80:grade = 'B'
elif score >= 70:grade = 'C'
elif score >= 60:grade = 'D'
else:grade = 'E'
print('成绩等级是:', grade)

例子14:计算提成

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

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

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

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

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

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

"""
计算提成 v1.0
"""profit = float(input('输入销售利润(元): '))if profit <= 100000:bonus = profit * 0.1
elif profit <= 200000:bonus = 100000 * 0.1 + (profit - 100000) * 0.075
elif profit <= 400000:bonus = 100000 * 0.1 + 200000 * 0.075 + (profit - 200000) * 0.05
elif profit <= 600000:bonus = 100000 * 0.1 + 200000 * 0.075 + 400000 * 0.05 + (profit - 400000) * 0.03
else:bonus = 100000 * 0.1 + 200000 * 0.075 + 400000 * 0.05 + 600000 * 0.03 + (profit - 600000) * 0.01print('奖金:%.2f' % bonus)

例子15:实现分段函数

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

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

例子16:1-n求和

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

"""
1-n求和
"""n = int(input('输入n:'))s = 0
while n >= 1:s += nn -= 1print('1-%d 求和结果: %d' % (n, s))

例子17:累加器 v2.0

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

"""
累加器 v1.0
"""s = 0
while True:in_str = input('输入整数(输入q,则退出):')if in_str == 'q':breakx = int(in_str)s += xprint('加和:%d' % s)

例子18:猜数游戏

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

"""
猜数游戏
"""import randomanswer = random.randint(1, 100)
counter = 0
while True:counter += 1number = int(input('猜一个数字(1-100): '))if number < answer:print('再大一点')elif number > answer:print('再小一点')else:print('猜对了')breakprint(f'共猜了{counter}次')

例子19:打印乘法口诀表

"""
打印乘法口诀表
"""for i in range(1, 10):for j in range(1, i + 1):print(f'{i}*{j}={i * j}', end='\t')

例子20:是否是素数

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

"""
判断是否是素数
"""num = int(input('请输入一个正整数: '))
end = int(num // 2) + 1  # 只判断前半部分是否能整除即可,前半部分没有能整除的因此,后半部分肯定也没有is_prime = True
for x in range(2, end):if num % x == 0:is_prime = Falsebreak
if is_prime and num != 1:print('素数')
else: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 ...

"""
斐波那契数列 v1.0
"""n = int(input('输入n: '))
a, b = 0, 1
for _ in range(n):a, b = b, a + bprint(f'第 {n} 位斐波那契数是:{a}')

例子22:水仙花数

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

"""
水仙花数
"""for num in range(100, 1000):low = num % 10mid = num // 10 % 10high = num // 100if num == low ** 3 + mid ** 3 + high ** 3:print(num)

例子23:猴子吃桃

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

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

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

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

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

"""
猴子吃桃
"""peach = 1
for i in range(9):peach = (peach + 1) * 2
print(peach)

例子24:打印菱形

输出如下菱形图案

***

*****

*******

*****

***

"""
输出菱形
"""for star_num in range(1, 7, 2):blank_num = 7 - star_numfor _ in range(blank_num // 2):print(' ', end='')for _ in range(star_num):print('*', end='')for _ in range(blank_num // 2):print(' ', end='')print()for _ in range(7):print('*', end='')print()for star_num in range(5, 0, -2):blank_num = 7 - star_numfor _ in range(blank_num // 2):print(' ', end='')for _ in range(star_num):print('*', end='')for _ in range(blank_num // 2):print(' ', end='')print()

例子25:计算提成 v2.0

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

"""
计算提成 v2.0
"""profit = int(input('输入销售利润(元): '))
bonus = 0
thresholds = [100000, 200000, 400000, 600000]
rates = [0.1, 0.075, 0.05, 0.03, 0.01]for i in range(len(thresholds)):if profit <= thresholds[i]:bonus += profit * rates[i]breakelse:bonus += thresholds[i] * rates[i]bonus += (profit - thresholds[-1]) * rates[-1]
print('奖金:%.2f' % bonus)

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

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

"""
计算某天是一年中的第几天
"""months = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
res = 0
year = int(input('年份: '))
month = int(input('月份: '))
day = int(input('几号: '))if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: # 闰年二月 29 天months[2] += 1for i in range(month):res += months[i]print(res+day)

例子27:回文字符串

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

"""
判断是否是回文串
"""s = input('输入字符串:')i = 0
j = -1
s_len = len(s)
flag = Truewhile i != s_len + j:if s[i] != s[j]:flag = Falsebreaki += 1j += -1print('是回文串' if flag else '不是回文串')

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

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

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

例子29:个人信息排序

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

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

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

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

"""
去重
"""input_set = set()while True:s = input('输入内容(输入q,则退出):')if s == 'q':breakinput_set.add(s)print(input_set)

例子31:输出集合交集

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

"""
集合交集
"""python_web_programmer = set()
python_web_programmer.add('python基础')
python_web_programmer.add('web知识')ai_programmer = set()
ai_programmer.add('python基础')
ai_programmer.add('机器学习')inter_set = python_web_programmer.intersection(ai_programmer)
print('技能交集:', end='')
print(inter_set)

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

例子32:猜拳游戏

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

"""
猜拳游戏
"""# 0代表布,1代表剪刀,2代表石头
import randomrule = {'布': 0, '剪刀': 1, '石头': 2}rand_res = random.randint(0, 2)
input_s = input('输入石头、剪刀、布:')
input_res = rule[input_s]
win = Trueif abs(rand_res - input_res) == 2:  # 相差2说明是布和石头相遇,出布一方胜if rand_res == 0:win = False
elif rand_res > input_res:  # 相差1的情况谁大谁赢win = Falseprint(f'程序出:{list(rule.keys())[rand_res]},输入:{input_res}')if rand_res == input_res:print('平')
else:print('赢' if win else '输')

例子33:字典排序

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

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

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

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

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

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

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

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

例子36:阶乘

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

"""
阶乘函数
"""def fact(n):return 1 if n == 1 else fact(n-1) * nprint(f'10! = {fact(10)}')

例子37:实现 range 函数

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

"""
range函数
"""def range_x(start, stop, step):res = []while start < stop:res.append(start)start += stepreturn res

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/142658.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【强推】8个实用的Python程序

1. 引言 本文所提到的所有代码都曾经帮助我激发了解决问题的一些思考。不言而喻&#xff0c;如果您想学习编码和提升解决问题的能力&#xff0c;我们可以尝试自己来解决以下问题。 闲话少说&#xff0c;我们直接开始吧。 &#xff1a;&#xff09; 2. 处理句子中的脏话 编写…

【Python精华】100个Python练手小程序

100个Python练手小程序&#xff0c;学习python的很好的资料&#xff0c;覆盖了python中的每一部分&#xff0c;可以边学习边练习&#xff0c;更容易掌握python。 【程序1】 题目&#xff1a;有1、2、3、4个数字&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff…

【代码附】Python实现简单的7款小程序。

前文 在使用Python的过程中&#xff0c;我最喜欢的就是Python的各种第三方库&#xff0c;能够完成很多操作。 下面带大家做7款各种功能不一样的项目。 闹钟 目的&#xff1a;编写一个创建闹钟的Python脚本。 提示&#xff1a;你可以使用date-time模块创建闹钟&#xff0c;以及…

六级备考24天|CET-6|翻译技巧3|翻译2020年6月真题红楼梦|逻辑问题|理解背诵|20:50~22:30

目录 一、逻辑重建 例句1 例句2 例句3 二、定语和状语 定语的翻译原则 什么是状语&#xff1f; 状语位置 状语的基本形式 三、主动和被动 四、无主句 五、并列和连动 连动 六、作题步骤 七、红楼梦 PRACTICE ANSWER​ 时态问题 一、逻辑重建 试比较&#xff1a; 1. 下雨了…

eclipse环境配置

eclipse环境配置 0. 前言1. 下载eclipse2. 下载sdk3. 配置sdk环境变量4. 验证sdk其他 0. 前言 本节记录如何配置eclipse的sdk配置 操作系统&#xff1a;Windows10 专业版 开发环境&#xff1a;eclipse 1. 下载eclipse 来这边下载一下eclipse 菜鸟教程 完事之后打开eclips…

如何在Linux中安装redis(图文教程,按照步骤可安装成功)

目录 1、在Redis版本库&#xff1a;https://download.redis.io/releases/ 可根据自己的需求选择下载对应的版本&#xff0c;然后直接下载 2、通过Xftp工具进行上传&#xff0c;选择指定的应用拖到右侧对应的目录即可&#xff08;可以放在Linux的tmp目录下&#xff0c;之后再进…

Centos7安装Redis教程

Centos7安装Redis 0、更新文件 yum update -y这里会更新好多内容&#xff0c;需要等待一会。 1、下载redis 【CSDN资源下载】 https://redis.io/ 2、将压缩包放到Linux&#xff0c;我放在了export/intstall并解压 cd /export/install tar -zxvf redis-6.2.1.tar.gz3、安…

超级详细 的 Redis 安装教程

超级详细 的 Redis 安装教程 Windows 版本的 Redis 是 Microsoft 的开源部门提供的 Redis. 这个版本的 Redis 适合开发人员学习使用&#xff0c;生产环境中使用 Linux 系统上的 Redis, 这里讲解了这两种的安装和下载。按照你们需要的liunx 或window步骤来 就可以了&#xff08;…

基础篇009.1 STM32驱动RC522 RFID模块之一:基础知识

目录 1. RFID概述 1.1 RFID工作原理 1.2 RFID分类 1.3 RFID模块 1.4 RFID卡片 1.5 IC卡和ID卡介绍 1.6 IC卡和ID的区分 2. Mifare卡结构原理 2.1 Mifare卡概述 2.2 Mifare非接触式 IC 卡性能简介&#xff08;M1&#xff09; 2.2.1 Mifare S50与Mifare S70 2.2.2 S5…

redis下载安装教程

前言 今天做一个redis下载安装教程文章分享给大家。 操作 1、下载网址&#xff1a;https://github.com/MicrosoftArchive/redis/releases 2、我们选择安装版的 3、双击安装 4、下一步 5、选择一个安装路径&#xff0c;并打上对勾&#xff0c;对勾可以将redis添加到环境变量…

centos安装Redis详细教程

1、网上搜索redis&#xff0c;查找下载连接 链接为http://download.redis.io/releases/redis-6.0.3.tar.gz 2、使用wget下载gz包&#xff0c;安装成功如图所示 wget http://download.redis.io/releases/redis-6.0.3.tar.gz 3、下载完毕之后进行解压 tar -zxvf redis-6.0.3.t…

Linux 下 Redis 安装教程

Linux 下 Redis 安装教程 事先准备下载 Redis安装 Redis设置 Redis 开机自启动远程访问 RedisRDM 远程访问 Redis 笔者的运行环境&#xff1a; CentOS Stream 8 x86_64 Redis 6.2.5 事先准备 进行这个教程之前&#xff0c;必须要先安装好一个 Linux 操作系统。这个 Linux 操作…

Redis安装教程(保姆级详细图文)

&#x1f9e7;Redis系列&#xff1a; &#x1f387;Redis安装教程&#xff08;保姆级详细图文&#xff09;](https://rhysni.blog.csdn.net/article/details/123343579?spm1001.2014.3001.5502) &#x1f387;布隆过滤器安装步骤 &#x1f387;小记一手 “Redis持久化机制” &…

Redis安装教程(Windows版)

1. 下载安装包 https://robinliu.3322.org:8888/download/Redis-x64-3.2.100.msi 2. 安装注意事项 为了便于使用&#xff0c;在安装时&#xff0c; 强烈推荐勾选 “ 将 Redis 安装到的文件夹添加到 Windows 的环境变量中 ” &#xff0c;如 下图所示&#xff1a; 安装过…

Redis的安装教程(Windows+Linux)【超详细】

Redis的安装教程 Redis简介在Windows环境下搭建下载安装包解压安装包进入到Redis目录下打开cmd窗口验证 在Linux环境下搭建创建一个存放Redis的文件夹&#xff0c;下载安装包解压安装包开始安装启动Redis服务 Redis简介 官方文档&#xff1a;点这里 Redis是开放源代码&#xf…

Centos7 安装Redis详细教程

本文主要介绍如果在Centos7下安装Redis。 1、安装依赖环境 redis是由C语言开发&#xff0c;因此安装之前必须要确保服务器已经安装了gcc&#xff0c;可以通过如下命令查看机器是否安装&#xff1a; gcc -v 如果没有安装则通过以下命令安装&#xff1a; yum install -y gcc …

Redis安装教程(超详细)

Redis 一、Redis安装 1、windows下安装 默认端口&#xff1a;6379 下载连接 https://github.com/tporadowski/redis/releases 解压 双击redis-server.exe启动服务端 双击redis-cli.exe启动客户端连接服务端 在客户端输入 “ping”&#xff0c;出现“PONG”&#xff0c;即…

redis5.0.8 安装教程

1.下载安装 我这里给出的linux系统redis安装&#xff0c;因为windows redis更新太慢&#xff0c;建议大家使用linux安装redis。 如果还没有linux&#xff0c;可以看我的前两篇 Vmware 15的安装教程 centos 8安装教程 redis官网下载 点击Download 物理机和虚拟之间复制文件需要…

redis下载安装教程(详细步骤)

一、简介 Redis作为常用开源的非关系型数据库&#xff0c;是开发中常用的数据库之一。Redis底层是使用ANSI C编写的&#xff0c;支持网络可基于内存和可持久化的日志型、Key-Value数据库&#xff0c;提供了多种语言API。&#xff08;基于内存是Redis快的一个重要因素&#xff0…

redis基础知识——菜鸟教程

第一章——redis教程 简介&#xff1a;Redis是一个由xxx写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库&#xff1b; Redis 是开源的&#xff0c;键值对(Key-Value)存储数据库&#xff0c;提供多种语言的 API&#xff1b; Redis 通常被称为数据结构服务器&…