关于python:37个Python入门小程序

6次阅读

共计 8058 个字符,预计需要花费 21 分钟才能阅读完成。

有不少同学学完 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 工程师和算法工程师须要的技能,计算二者交加。

"""汇合交加"""

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 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”即可收费获取,每日干货分享

正文完
 0