有不少同学学完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 // 10 print('个位数: %d' % single_dig) print('除个位数外: %d' % exp_single_dig)
例子6:实现一个累加器
实现一个简略的累加器,能够承受用户输出3个数字,并将其累加。须要用到复合赋值运算符:+=
""" 累加器 v1.0 """ s = 0 x = int(input('输出整数:')) s += x x = int(input('输出整数:')) s += x x = int(input('输出整数:')) s += x print('总和:%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 random in_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:判断平年
之前判断平年是输入True或False,这次须要输入文字版平年或平年
""" 判断平年 """ 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.8 print('摄氏温度为:%.2f' % c) elif trans_type == '华氏度': # 执行摄氏度转华氏度的逻辑 c = float(input('输出摄氏温度:')) f = c * 1.8 + 32 print('华氏温度为:%.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.01 print('奖金:%.2f' % bonus)
例子15:实现分段函数
数学中常常会见到分段函数,用程序实现如下分段函数
""" 分段函数 """ x = int(input('输出:')) if x > 0: y = 3 * x ** 2 + 4 else: y = 2 * x + 2 print('f(%d) = %d' % (x, y))
例子16:1-n求和
输出正整数n,计算 1 + 2 + … + n的后果。
""" 1-n求和 """ n = int(input('输出n:')) s = 0 while n >= 1: s += n n -= 1 print('1-%d 求和后果: %d' % (n, s))
例子17:累加器 v2.0
之前实现的累加器只能反对 3 个数相加,当初须要去掉该限度,能够有限相加。
""" 累加器 v1.0 """ s = 0 while True: in_str = input('输出整数(输出q,则退出):') if in_str == 'q': break x = int(in_str) s += x print('加和:%d' % s)
例子18:猜数游戏
程序随机生成一个正整数,用户来猜,程序依据猜的大小给出相应的提醒。最初,输入用户猜了多少次才猜中。
""" 猜数游戏 """ import random answer = random.randint(1, 100) counter = 0 while True: counter += 1 number = int(input('猜一个数字(1-100): ')) if number < answer: print('再大一点') elif number > answer: print('再小一点') else: print('猜对了') break print(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 = False break 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 + b print(f'第 {n} 位斐波那契数是:{a}')
例子22:水仙花数
水仙花数是一个3位数,该数字每个位上数字的立方和正好等于它自身,例如:
""" 水仙花数 """ for num in range(100, 1000): low = num % 10 mid = num // 10 % 10 high = num // 100 if 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_num for _ 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_num for _ 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] break else: 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] += 1 for i in range(month): res += months[i] print(res+day)
例子27:回文字符串
判断一个字符串是否是回文串,回文串是一个正读和反读都一样的字符串,如:level
""" 判断是否是回文串 """ s = input('输出字符串:') i = 0 j = -1 s_len = len(s) flag = True while i != s_len + j: if s[i] != s[j]: flag = False break i += 1 j += -1 print('是回文串' if flag else '不是回文串')
例子28:个人信息输入输出
不定义类的状况下,能够将个人信息保留在元祖中
students = [] while True: input_s = input('输出学生信息(学号 姓名 性别),空格分隔(输出q,则退出):') if input_s == 'q': break input_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': break input_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': break input_set.add(s) print(input_set)
例子31:输入汇合交加
给定Python web工程师和算法工程师须要的技能,计算二者交加。
""" 汇合交加 """ <a href="https://www.gaodaima.com/tag/python" title="查看更多关于python的文章" target="_blank">python</a>_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 random rule = {'布': 0, '剪刀': 1, '石头': 2} rand_res = random.randint(0, 2) input_s = input('输出石头、剪刀、布:') input_res = rule[input_s] win = True if abs(rand_res - input_res) == 2: # 相差2阐明是布和石头相遇,出布一方胜 if rand_res == 0: win = False elif rand_res > input_res: # 相差1的状况谁大谁赢 win = False print(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 * y print(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! = 123* … n
""" 阶乘函数 """ def fact(n): return 1 if n == 1 else fact(n-1) * n print(f'10! = {fact(10)}')
例子37:实现 range 函数
编写一个相似于 Python中的 range 性能的函数
""" range函数 """ def range_x(start, stop, step): res = [] while start < stop: res.append(start) start += step return res
以上就是本次分享的所有内容,想要理解更多 python 常识欢送返回公众号:Python 编程学习圈 ,发送 “J” 即可收费获取,每日干货分享