Python 3 教程第31篇(实例)

1 Python Hello World

# -*- coding: UTF-8 -*-
# Filename : helloworld.py
# author by : www.runoob.com
# 该实例输出 Hello World!
print('Hello World!')

执行以上代码输出结果为:

Hello World!

2 Python 数字求和

Document 对象参考手册 Python3 实例
以下实例为通过用户输入两个数字,并计算两个数字之和:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 用户输入数字
num1 = input('输入第一个数字:')
num2 = input('输入第二个数字:')
# 求和
sum = float(num1) + float(num2)
# 显示计算结果
print('数字 {0} 和 {1} 相加结果为: {2}'.format(num1, num2, sum))

执行以上代码输出结果为:

输入第一个数字:1.5
输入第二个数字:2.5
数字 1.52.5 相加结果为: 4.0

在该实例中,我们通过用户输入两个数字来求和。使用了内置函数 input() 来获取用户的输入,input() 返回一个字符串,所以我们需要使用 float() 方法将字符串转换为数字。
两数字运算,求和我们使用了加号 (+)运算符,除此外,还有 减号 (-), 乘号 (*), 除号 (/), 地板除 (//) 或 取余 (%)。更多数字运算可以查看我们的Python 数字运算。
我们还可以将以上运算,合并为一行代码:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
print('两数之和为 %.1f' %(float(input('输入第一个数字:'))+float(input('输入第二个数字:'))))

执行以上代码输出结果为:

$ python test.py 
输入第一个数字:1.5
输入第二个数字:2.5
两数之和为 4.0

3 Python 平方根

Document 对象参考手册 Python3 实例
平方根,又叫二次方根,表示为〔√ ̄〕,如:数学语言为:√ ̄16=4。语言描述为:根号下16=4。
以下实例为通过用户输入一个数字,并计算这个数字的平方根:

实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
num = float(input('请输入一个数字: '))
num_sqrt = num ** 0.5
print(' %0.3f 的平方根为 %0.3f'%(num ,num_sqrt))

执行以上代码输出结果为:

$ python test.py 
请输入一个数字: 4
 4.000 的平方根为 2.000

在该实例中,我们通过用户输入一个数字,并使用指数运算符 ** 来计算该数的平方根。
该程序只适用于正数。负数和复数可以使用以下的方式:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 计算实数和复数平方根
# 导入复数数学模块
import cmath
num = int(input("请输入一个数字: "))
num_sqrt = cmath.sqrt(num)
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num ,num_sqrt.real,num_sqrt.imag))

执行以上代码输出结果为:

$ python test.py 
请输入一个数字: -8
-8 的平方根为 0.000+2.828j

该实例中,我们使用了 cmath (complex math) 模块的 sqrt() 方法。


4 Python 计算三角形的面积

Document 对象参考手册 Python3 实例
以下实例为通过用户输入三角形三边长度,并计算三角形的面积:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
a = float(input('输入三角形第一边长: '))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长: '))
# 计算半周长
s = (a + b + c) / 2
# 计算面积
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
print('三角形面积为 %0.2f' %area)

执行以上代码输出结果为:

$ python test.py 
输入三角形第一边长: 5
输入三角形第二边长: 6
输入三角形第三边长: 7
三角形面积为 14.70

5 Python 计算圆的面积

Document 对象参考手册 Python3 实例
圆的面积公式为 :
公式中 r 为圆的半径。
实例 1

# 定义一个方法来计算圆的面积
def findArea(r):
    PI = 3.142
    return PI * (r*r)


 
# 调用方法
print("圆的面积为 %.6f" % findArea(5))

以上实例输出结果为:

圆的面积为 78.550000

使用 math 模块来计算圆的面积:

实例

import math
def calculate_circle_area(radius):
    return math.pi * radius ** 2

# 示例
radius = 5
area = calculate_circle_area(radius)
print(f"半径为 {radius} 的圆的面积是 {area}")

以上实例定义了一个函数 calculate_circle_area,接收半径作为参数,计算并返回圆的面积。
实例中,半径为 5,你可以根据需要修改半径值来计算不同圆的面积,以上代码执行输出结果为:
半径为 5 的圆的面积是 78.53981633974483


6 Python 随机数生成

Document 对象参考手册 Python3 实例
在 Python 中,可以使用内置的 random 模块来生成随机数。

import random
random.random()
random.random() 返回一个介于 0.01.0 之间的随机小数:

实例

import random
random_number = random.random()
print(random_number)

执行以上代码输出结果为:

0.7597072251250637

random.randint(a, b)
random.randint(a, b) 用于返回一个介于 a 和 b 之间的整数(包括 a 和 b)。

random.randint(a,b)

函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。
以下实例演示了如何生成一个 0 ~ 9 之间随机数:

实例

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 生成 0 ~ 9 之间的随机数
# 导入 random(随机数) 模块
import random
print(random.randint(0,9))

执行以上代码输出结果为:

4

random.choice(sequence)
random.choice(sequence) 用于从序列中随机选择一个元素:

实例

import random
list1 = [1, 2, 3, 4, 5]
random_element = random.choice(list1)
print(random_element)
实例
import random
list1 = [1, 2, 3, 4, 5]
random_element = random.choice(list1)
print(random_element)

执行以上代码输出结果为:

4

random.shuffle(sequence)
random.shuffle(sequence) 用于将序列中的元素进行随机排序:

实例

import random
list1 = [1, 2, 3, 4, 5]
random.shuffle(list1)
print(list1)

执行以上代码输出结果为:

[3, 2, 4, 5, 1]

7 Python 摄氏温度转华氏温度

Document 对象参考手册 Python3 实例
以下实例演示了如何将摄氏温度转华氏温度:
实例

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 用户输入摄氏温度
# 接收用户输入
celsius = float(input('输入摄氏温度: '))
 
# 计算华氏温度
fahrenheit = (celsius * 1.8) + 32
print('%0.1f 摄氏温度转为华氏温度为 %0.1f ' %(celsius,fahrenheit))

执行以上代码输出结果为:

输入摄氏温度: 38

38.0 摄氏温度转为华氏温度为 100.4
以上实例中,摄氏温度转华氏温度的公式为 celsius * 1.8 = fahrenheit - 32。所以得到以下式子:

celsius = (fahrenheit - 32) / 1.8


8 Python 交换变量

Document 对象参考手册 Python3 实例
以下实例通过用户输入两个变量,并相互交换:
实例

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
 
# 用户输入
x = input('输入 x 值: ')
y = input('输入 y 值: ')
# 创建临时变量,并交换
temp = x
x = y
y = temp
print('交换后 x 的值为: {}'.format(x))
print('交换后 y 的值为: {}'.format(y))

执行以上代码输出结果为:

输入 x 值: 2
输入 y 值: 3
交换后 x 的值为: 3
交换后 y 的值为: 2

以上实例中,我们创建了临时变量 temp ,并将 x 的值存储在 temp 变量中,接着将 y 值赋给 x,最后将 temp 赋值给 y 变量。

不使用临时变量
我们也可以不创建临时变量,用一个非常优雅的方式来交换变量:
x,y = y,x
所以以上实例就可以修改为:
实例

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# 用户输入
 
x = input('输入 x 值: ')
y = input('输入 y 值: ')
 
# 不使用临时变量
x,y = y,x

print('交换后 x 的值为: {}'.format(x))
print('交换后 y 的值为: {}'.format(y))

执行以上代码输出结果为:

输入 x 值: 1
输入 y 值: 2
交换后 x 的值为: 2
交换后 y 的值为: 1


9 Python if 语句

Document 对象参考手册 Python3 实例
以下实例通过使用 if…elif…else 语句判断数字是正数、负数或零:
实例(Python 3.0+)

# Filename : test.py
# 用户输入数字
num = float(input("输入一个数字: "))
if num > 0:
   print("正数")
elif num == 0:
   print("零")
else:
   print("负数")

执行以上代码输出结果为:

输入一个数字: 3
正数

我们也可以使用内嵌 if 语句来实现:

实例(Python 3.0+)

# Filename :test.py
# author by : www.runoob.com
# 内嵌 if 语句
num = float(input("输入一个数字: "))
if num >= 0:
   if num == 0:
       print("零")
   else:
       print("正数")
else:
   print("负数")

执行以上代码输出结果为:

输入一个数字: 0

10 Python 判断字符串是否为数字

Document 对象参考手册 Python3 实例
以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为数字:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass
 
    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass
 
    return False
 
# 测试字符串和数字
print(is_number('foo'))   # False
print(is_number('1'))     # True
print(is_number('1.3'))   # True
print(is_number('-1.37')) # True
print(is_number('1e3'))   # True
# 测试 Unicode
# 阿拉伯语 5
print(is_number('٥'))  # True
# 泰语 2
print(is_number('๒'))  # True
# 中文数字
print(is_number('四')) # True
# 版权号
print(is_number('©'))  # False

我们也可以使用内嵌 if 语句来实现:
执行以上代码输出结果为:

False
True
True
True
True
True
True
True
False

11 Python 判断奇数偶数

Document 对象参考手册 Python3 实例
以下实例用于判断一个数字是否为奇数或偶数:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
# Python 判断奇数偶数
# 如果是偶数除于 2 余数为 0
# 如果余数为 1 则为奇数
num = int(input("输入一个数字: "))
if (num % 2) == 0:
   print("{0} 是偶数".format(num))
else:
   print("{0} 是奇数".format(num))

我们也可以使用内嵌 if 语句来实现:
执行以上代码输出结果为:

输入一个数字: 3
3 是奇数


12 Python 判断闰年

Document 对象参考手册 Python3 实例
以下实例用于判断用户输入的年份是否为闰年:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
year = int(input("输入一个年份: "))
if (year % 4) == 0:
   if (year % 100) == 0:
       if (year % 400) == 0:
           print("{0} 是闰年".format(year))   # 整百年能被400整除的是闰年
       else:
           print("{0} 不是闰年".format(year))
   else:
       print("{0} 是闰年".format(year))       # 非整百年能被4整除的为闰年
else:
   print("{0} 不是闰年".format(year))

我们也可以使用内嵌 if 语句来实现:
执行以上代码输出结果为:

输入一个年份: 2000
2000 是闰年
输入一个年份: 2011
2011 不是闰年

13 Python 获取最大值函数

Document 对象参考手册 Python3 实例
以下实例中我们使用max()方法求最大值:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
# 最简单的
print(max(1, 2))
print(max('a', 'b'))
 
# 也可以对列表和元组使用
print(max([1,2]))
print(max((1,2)))
 
# 更多实例
print("80, 100, 1000 最大值为: ", max(80, 100, 1000))
print("-20, 100, 400最大值为: ", max(-20, 100, 400))
print("-80, -20, -10最大值为: ", max(-80, -20, -10))
print("0, 100, -400最大值为:", max(0, 100, -400))

执行以上代码输出结果为:

2
b
2
2
80, 100, 1000 最大值为:  1000
-20, 100, 400最大值为:  400
-80, -20, -10最大值为:  -10
0, 100, -400最大值为: 100


14 Python 质数判断

Document 对象参考手册 Python3 实例
一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。

test.py 文件:

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com
# Python 程序用于检测用户输入的数字是否为质数
# 用户输入数字
num = int(input("请输入一个数字: "))
# 质数大于 1
if num > 1:
   # 查看因子
   for i in range(2,num):
       if (num % i) == 0:
           print(num,"不是质数")
           print(i,"乘于",num//i,"是",num)
           break
   else:
       print(num,"是质数")
       
# 如果输入的数字小于或等于 1,不是质数
else:
   print(num,"不是质数")

执行以上代码输出结果为:

$ python3 test.py 
请输入一个数字: 1
1 不是质数
$ python3 test.py 
请输入一个数字: 4
4 不是质数
2 乘于 24
$ python3 test.py 
请输入一个数字: 5
5 是质数

15 Python 输出指定范围内的素数

Document 对象参考手册 Python3 实例
素数(prime number)又称质数,有无限个。除了1和它本身以外不再被其他的除数整除。
以下实例可以输出指定范围内的素数:

实例(Python 3.0+)

#!/usr/bin/python3
# 输出指定范围内的素数
# take input from the user
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
 
for num in range(lower,upper + 1):
    # 素数大于 1
    if num > 1:
        for i in range(2,num):
            if (num % i) == 0:
                break
        else:
            print(num)

执行以上程序,输出结果为:

$ python3 test.py 
输入区间最小值: 1
输入区间最大值: 100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

使用试除法
试除法是一种基本的算法,它对每个数进行除法测试以判断是否为素数。以下是使用试除法输出指定范围内素数的代码:

实例

def is_prime(n):
    """判断一个数是否为素数"""
    if n <= 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        i += 6
    return True

def primes_in_range(start, end):
    """输出指定范围内的素数"""
    for num in range(start, end + 1):
        if is_prime(num):
            print(num)

# 示例:输出 10 到 50 范围内的素数
primes_in_range(10, 50)

使用埃拉托斯特尼筛法
埃拉托斯特尼筛法是一种更高效的算法,尤其适用于找出较大范围内的素数。以下是使用埃拉托斯特尼筛法输出指定范围内素数的代码:

实例

def sieve_of_eratosthenes(max_num):
    """使用埃拉托斯特尼筛法找出 max_num 以内的所有素数"""
    sieve = [True] * (max_num + 1)
    sieve[0] = sieve[1] = False  # 0 和 1 不是素数
    p = 2
    while p * p <= max_num:
        if sieve[p]:
            for multiple in range(p * p, max_num + 1, p):
                sieve[multiple] = False
        p += 1
    return [p for p, is_prime in enumerate(sieve) if is_prime]

def primes_in_range(start, end):
    """输出指定范围内的素数"""
    primes = sieve_of_eratosthenes(end)
    for num in primes:
        if num >= start:
            print(num)

# 示例:输出 10 到 50 范围内的素数
primes_in_range(10, 50)

16 Python 阶乘实例

Document 对象参考手册 Python3 实例
整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×…×n。
实例

#!/usr/bin/python3
 
# Filename : test.py
# author by : www.runoob.com
 
# 通过用户输入数字计算阶乘
 
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
factorial = 1
 
# 查看数字是负数,0 或 正数
if num < 0:
   print("抱歉,负数没有阶乘")
elif num == 0:
   print("0 的阶乘为 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print("%d 的阶乘为 %d" %(num,factorial))

执行以上代码输出结果为:

请输入一个数字: 3
3 的阶乘为 6

17 Python 九九乘法表

Document 对象参考手册 Python3 实例
以下实例演示了如何实现九九乘法表:
实例

# -*- coding: UTF-8 -*-
 # Filename : test.py
 # author by : www.runoob.com
 
# 九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(j, i, i*j), end='')
    print()

执行以上代码输出结果为:

1x1=1    
1x2=2    2x2=4    
1x3=3    2x3=6     3x3=9    
1x4=4    2x4=8     3x4=12     4x4=16    
1x5=5    2x5=10    3x5=15    4x5=20    5x5=25    
1x6=6    2x6=12    3x6=18    4x6=24    5x6=30    6x6=36    
1x7=7    2x7=14    3x7=21    4x7=28    5x7=35    6x7=42    7x7=49    
1x8=8    2x8=16    3x8=24    4x8=32    5x8=40    6x8=48    7x8=56    8x8=64    
1x9=9    2x9=18    3x9=27    4x9=36    5x9=45    6x9=54    7x9=63    8x9=72    9x9=81

通过指定end参数的值,可以取消在末尾输出回车符,实现不换行。


18 Python 斐波那契数列

Document 对象参考手册 Python3 实例
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
Python 实现斐波那契数列代码如下:

实例(Python 3.0+)

# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
# Python 斐波那契数列实现
 
# 获取用户输入数据
nterms = int(input("你需要几项?"))
 
# 第一和第二项
n1 = 0
n2 = 1
count = 2
 
# 判断输入的值是否合法
if nterms <= 0:
   print("请输入一个正整数。")
elif nterms == 1:
   print("斐波那契数列:")
   print(n1)
else:
   print("斐波那契数列:")
   print(n1,",",n2,end=" , ")
   while count < nterms:
       nth = n1 + n2
       print(nth,end=" , ")
       # 更新值
       n1 = n2
       n2 = nth
       count += 1

执行以上代码输出结果为:

你需要几项? 10
斐波那契数列:
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 ,


19 Python 阿姆斯特朗数

Document 对象参考手册 Python3 实例
如果一个 n 位正整数等于其各位数字的 n 次方之和,则称该数为阿姆斯特朗数。 例如 1^3 + 5^3 + 3^3 = 153。
1000 以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。
以下代码用于检测用户输入的数字是否为阿姆斯特朗数:

实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
 
# Python 检测用户输入的数字是否为阿姆斯特朗数
 
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
 
# 初始化变量 sum
sum = 0
# 指数
n = len(str(num))
 
# 检测
temp = num
while temp > 0:
   digit = temp % 10
   sum += digit ** n
   temp //= 10
 
# 输出结果
if num == sum:
   print(num,"是阿姆斯特朗数")
else:
   print(num,"不是阿姆斯特朗数")

执行以上代码输出结果为:

$ python3 test.py 
请输入一个数字: 345
345 不是阿姆斯特朗数

$ python3 test.py 
请输入一个数字: 153
153 是阿姆斯特朗数

$ python3 test.py 
请输入一个数字: 1634

1634 是阿姆斯特朗数
获取指定期间内的阿姆斯特朗数
实例(Python 3.0+)

# Filename :test.py
# author by : www.runoob.com
 
# 获取用户输入数字
lower = int(input("最小值: "))
upper = int(input("最大值: "))
 
for num in range(lower,upper + 1):
   # 初始化 sum
   sum = 0
   # 指数
   n = len(str(num))
 
   # 检测
   temp = num
   while temp > 0:
       digit = temp % 10
       sum += digit ** n
       temp //= 10
 
   if num == sum:
       print(num)

执行以上代码输出结果为:

最小值: 1
最大值: 10000
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474

以上实例中我们输出了 1 到 10000 之间的阿姆斯特朗数。


20 Python 十进制转二进制、八进制、十六进制

Document 对象参考手册 Python3 实例
以下代码用于实现十进制转二进制、八进制、十六进制:
实例(Python 3.0+)

# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
# 获取用户输入十进制数
dec = int(input("输入数字:"))
 
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))

执行以上代码输出结果为:

python3 test.py 
输入数字:5
十进制数为:5
转换为二进制为: 0b101
转换为八进制为: 0o5
转换为十六进制为: 0x5

以下实例展示了如何在不同进制之间进行转换,你可以根据需要修改输入的进制值和输出的进制形式。

二进制转换实例
实例

binary_number = '101010'
decimal_number = int(binary_number, 2)  # 二进制转换为十进制
octal_number = oct(decimal_number)      # 十进制转换为八进制
hexadecimal_number = hex(decimal_number)  # 十进制转换为十六进制

print('二进制数:', binary_number)
print('转换为十进制:', decimal_number)
print('转换为八进制:', octal_number)
print('转换为十六进制:', hexadecimal_number)

输出结果:

二进制数: 101010
转换为十进制: 42
转换为八进制: 0o52
转换为十六进制: 0x2a

八进制转换实例
实例

octal_number = '52'
decimal_number = int(octal_number, 8)      # 八进制转换为十进制
binary_number = bin(decimal_number)         # 十进制转换为二进制
hexadecimal_number = hex(decimal_number)    # 十进制转换为十六进制

print('八进制数:', octal_number)
print('转换为十进制:', decimal_number)
print('转换为二进制:', binary_number)
print('转换为十六进制:', hexadecimal_number)

输出结果:

八进制数: 52
转换为十进制: 42
转换为二进制: 0b101010
转换为十六进制: 0x2a

十六进制转换实例
实例

hexadecimal_number = '2a'
decimal_number = int(hexadecimal_number, 16)   # 十六进制转换为十进制
binary_number = bin(decimal_number)             # 十进制转换为二进制
octal_number = oct(decimal_number)              # 十进制转换为八进制

print('十六进制数:', hexadecimal_number)
print('转换为十进制:', decimal_number)
print('转换为二进制:', binary_number)
print('转换为八进制:', octal_number)

输出结果:

十六进制数: 2a
转换为十进制: 42
转换为二进制: 0b101010
转换为八进制: 0o52

21 Python ASCII码与字符相互转换

Document 对象参考手册 Python3 实例
以下代码用于实现ASCII码与字符相互转换:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
# 用户输入字符
c = input("请输入一个字符: ")
# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))
print( c + " 的ASCII 码为", ord(c))
print( a , " 对应的字符为", chr(a))

执行以上代码输出结果为:

python3 test.py 
请输入一个字符: a
请输入一个ASCII码: 101
a 的ASCII 码为 97
101  对应的字符为 e

22 Python 最大公约数算法

Document 对象参考手册 Python3 实例
以下代码用于实现最大公约数算法:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
# 定义一个函数
def hcf(x, y):
   """该函数返回两个数的最大公约数"""
 
   # 获取最小值
   if x > y:
       smaller = y
   else:
       smaller = x
 
   for i in range(1,smaller + 1):
       if((x % i == 0) and (y % i == 0)):
           hcf = i
 
   return hcf
 
 
# 用户输入两个数字
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))

执行以上代码输出结果为:

输入第一个数字: 54
输入第二个数字: 24
5424 的最大公约数为 6

23 Python 最小公倍数算法

Document 对象参考手册 Python3 实例
以下代码用于实现最小公倍数算法:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
 
# 定义函数
def lcm(x, y):
 
   #  获取最大的数
   if x > y:
       greater = x
   else:
       greater = y
 
   while(True):
       if((greater % x == 0) and (greater % y == 0)):
           lcm = greater
           break
       greater += 1
 
   return lcm
 
 
# 获取用户输入
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2))

执行以上代码输出结果为:

输入第一个数字: 54
输入第二个数字: 24
5424 的最小公倍数为 216



24 Python 简单计算器实现

Document 对象参考手册 Python3 实例
以下代码用于实现简单计算器实现,包括两个数基本的加减乘除运算:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
 
# 定义函数
def add(x, y):
   """相加"""
 
   return x + y
 
def subtract(x, y):
   """相减"""
 
   return x - y
 
def multiply(x, y):
   """相乘"""
 
   return x * y
 
def divide(x, y):
   """相除"""
 
   return x / y
 
# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")
 
choice = input("输入你的选择(1/2/3/4):")
 
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
if choice == '1':
   print(num1,"+",num2,"=", add(num1,num2))
 
elif choice == '2':
   print(num1,"-",num2,"=", subtract(num1,num2))
 
elif choice == '3':
   print(num1,"*",num2,"=", multiply(num1,num2))
 
elif choice == '4':
   print(num1,"/",num2,"=", divide(num1,num2))
else:
   print("非法输入")

执行以上代码输出结果为:

选择运算:
1、相加
2、相减
3、相乘
4、相除
输入你的选择(1/2/3/4):2
输入第一个数字: 5
输入第二个数字: 2
5 - 2 = 3

另外一个实现代码:

实例

# 简单计算器程序

# 定义函数来执行加法
def add(x, y):
    return x + y

# 定义函数来执行减法
def subtract(x, y):
    return x - y

# 定义函数来执行乘法
def multiply(x, y):
    return x * y

# 定义函数来执行除法
def divide(x, y):
    if y != 0:
        return x / y
    else:
        return "除数不能为零"

# 主程序循环
while True:
    print("\n选择一个运算:")
    print("1. 加法")
    print("2. 减法")
    print("3. 乘法")
    print("4. 除法")
    print("5. 退出")

    choice = input("输入选项编号: ")

    if choice in ('1', '2', '3', '4'):
        num1 = float(input("输入第一个数: "))
        num2 = float(input("输入第二个数: "))

        if choice == '1':
            print(f"结果: {add(num1, num2)}")
        elif choice == '2':
            print(f"结果: {subtract(num1, num2)}")
        elif choice == '3':
            print(f"结果: {multiply(num1, num2)}")
        elif choice == '4':
            print(f"结果: {divide(num1, num2)}")
    elif choice == '5':
        print("退出程序.")
        break
    else:
        print("无效的选项,请重新输入.")

25 Python 生成日历

Document 对象参考手册 Python3 实例
以下代码用于生成指定日期的日历:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
 
# 引入日历模块
import calendar
 
# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
 
# 显示日历
print(calendar.month(yy,mm))

执行以上代码输出结果为:

输入年份: 2015
输入月份: 6
     June 2015
Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

27 Python 使用递归斐波那契数列

Document 对象参考手册 Python3 实例
以下代码使用递归的方式来生成斐波那契数列:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
 
def recur_fibo(n):
   """递归函数
   输出斐波那契数列"""
   if n <= 1:
       return n
   else:
       return(recur_fibo(n-1) + recur_fibo(n-2))
 
 
# 获取用户输入
nterms = int(input("您要输出几项? "))
 
# 检查输入的数字是否正确
if nterms <= 0:
   print("输入正数")
else:
   print("斐波那契数列:")
   for i in range(nterms):
       print(recur_fibo(i))

执行以上代码输出结果为:

您要输出几项? 10

斐波那契数列:
0
1
1
2
3
5
8
13
21
34

28 Python 文件 IO

Document 对象参考手册 Python3 实例
以下代码演示了Python基本的文件操作,包括 open,read,write:
实例(Python 3.0+)

# Filename : test.py
# author by : www.runoob.com
 
# 写文件
with open("test.txt", "wt") as out_file:
    out_file.write("该文本会写入到文件中\n看到我了吧!")
 
# Read a file
with open("test.txt", "rt") as in_file:
    text = in_file.read()
 
print(text)

执行以上代码输出结果为:

该文本会写入到文件中
看到我了吧!

29 Python 字符串判断

Document 对象参考手册 Python3 实例
以下代码演示了Python字符串的判断:
实例

# Filename : test.py
# author by : www.runoob.com

# 测试实例一
print("测试实例一")
str = "runoob.com"
print(str.isalnum()) # 判断所有字符都是数字或者字母
print(str.isalpha()) # 判断所有字符都是字母
print(str.isdigit()) # 判断所有字符都是数字
print(str.islower()) # 判断所有字符都是小写
print(str.isupper()) # 判断所有字符都是大写
print(str.istitle()) # 判断所有单词都是首字母大写,像标题
print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r

print("------------------------")

# 测试实例二
print("测试实例二")
str = "runoob"
print(str.isalnum())
print(str.isalpha())
print(str.isdigit())
print(str.islower())
print(str.isupper())
print(str.istitle())
print(str.isspace())

执行以上代码输出结果为:

测试实例一
False
False
False
True
False
False
False
------------------------
测试实例二
True
True
False
True
False
False

30 Python 字符串大小写转换

Document 对象参考手册 Python3 实例
以下代码演示了如何将字符串转换为大写字母,或者将字符串转为小写字母等:

# Filename : test.py
# author by : www.runoob.com

str = "www.runoob.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 

执行以上代码输出结果为:

WWW.RUNOOB.COM
www.runoob.com
Www.runoob.com
Www.Runoob.Com

31 Python 计算每个月天数

Document 对象参考手册 Python3 实例
以下代码通过导入 calendar 模块来计算每个月的天数:

实例(Python 3.0+)

#!/usr/bin/python3
# author by : www.runoob.com
 
import calendar
monthRange = calendar.monthrange(2016,9)
print(monthRange)

执行以上代码输出结果为:

(3, 30)

输出的是一个元组,第一个元素是所查月份的第一天对应的是星期几(0-6),第二个元素是这个月的天数。以上实例输出的意思为 2016 年 9 月份的第一天是星期四,该月总共有 30 天。


32 Python 获取昨天日期

Document 对象参考手册 Python3 实例
以下代码通过导入 datetime 模块来获取昨天的日期:

# Filename : test.py
# author by : www.runoob.com
 
# 引入 datetime 模块
import datetime
def getYesterday(): 
    today=datetime.date.today() 
    oneday=datetime.timedelta(days=1) 
    yesterday=today-oneday  
    return yesterday
 
# 输出
print(getYesterday())

执行以上代码输出结果为:

2015-06-10

33 Python list 常用操作

Document 对象参考手册 Python3 实例
1.list 定义
实例

>>> li = ["a", "b", "mpilgrim", "z", "example"]
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[1]        
'b'

2.list 负数索引
实例

>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[-1]
'example'
>>> li[-3]
'mpilgrim'
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[1:3]  
['b', 'mpilgrim']
>>> li[1:-1]
['b', 'mpilgrim', 'z']
>>> li[0:3]  
['a', 'b', 'mpilgrim']

3.list 增加元素
实例

>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li.append("new")
>>> li
['a', 'b', 'mpilgrim', 'z', 'example', 'new']
>>> li.insert(2, "new")
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new']
>>> li.extend(["two", "elements"])
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']

4.list 搜索
实例

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
>>> li.index("example")
5
>>> li.index("new")
2
>>> li.index("c")
Traceback (innermost last):
 File "<interactive input>", line 1, in ?
ValueError: list.index(x): x not in list
>>> "c" in li
False

5.list 删除元素
实例

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
>>> li.remove("z")  
>>> li
['a', 'b', 'new', 'mpilgrim', 'example', 'new', 'two', 'elements']
>>> li.remove("new")    # 删除首次出现的一个值
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two', 'elements']    # 第二个 'new' 未删除
>>> li.remove("c")     #list 中没有找到值, Python 会引发一个异常
Traceback (innermost last):
 File "<interactive input>", line 1, in ?
ValueError: list.remove(x): x not in list
>>> li.pop()      # pop 会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值。
'elements'
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two']

6.list 运算符
实例

>>> li = ['a', 'b', 'mpilgrim']
>>> li = li + ['example', 'new']
>>> li
['a', 'b', 'mpilgrim', 'example', 'new']
>>> li += ['two']        
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two']
>>> li = [1, 2] * 3
>>> li
[1, 2, 1, 2, 1, 2]

7.使用join链接list成为字符串
实例

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
'server=mpilgrim;uid=sa;database=master;pwd=secret'

join 只能用于元素是字符串的 list; 它不进行任何的类型强制转换。连接一个存在一个或多个非字符串元素的 list 将引发一个异常。

8.list 分割字符串
实例

>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s = ";".join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";")  
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s.split(";", 1)
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']

split 与 join 正好相反, 它将一个字符串分割成多元素 list。
注意, 分隔符 (“;”) 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。
split 接受一个可选的第二个参数, 它是要分割的次数。

9.list 的映射解析
实例

>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]   
[2, 18, 16, 8]
>>> li
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
>>> li
[2, 18, 16, 8]

10.dictionary 中的解析
实例

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.keys()
dict_keys(['server', 'database', 'uid', 'pwd'])
>>> params.values()
dict_values(['mpilgrim', 'master', 'sa', 'secret'])
>>> params.items()
dict_items([('server', 'mpilgrim'), ('database', 'master'), ('uid', 'sa'), ('pwd', 'secret')])
>>> [k for k, v in params.items()]
['server', 'database', 'uid', 'pwd']
>>> [v for k, v in params.items()]
['mpilgrim', 'master', 'sa', 'secret']
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'database=master', 'uid=sa', 'pwd=secret']

11.list 过滤
实例

>>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>> [elem for elem in li if len(elem) > 1]
['mpilgrim', 'foo']
>>> [elem for elem in li if elem != "b"]
['a', 'mpilgrim', 'foo', 'c', 'd', 'd']
>>> [elem for elem in li if li.count(elem) == 1]
['a', 'mpilgrim', 'foo', 'c']

34 Python 约瑟夫生者死者小游戏

Document 对象参考手册 Python3 实例
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?

实例

people={}
for x in range(1,31):
    people[x]=1
# print(people)
check=0
i=1
j=0
while i<=31:
    if i == 31:
        i=1
    elif j == 15:
        break
    else:
        if people[i] == 0:
            i+=1
            continue
        else:
            check+=1
            if check == 9:
                people[i]=0
                check = 0
                print("{}号下船了".format(i))
                j+=1
            else:
                i+=1
                continue

执行以上实例,输出结果为:

9号下船了
18号下船了
27号下船了
6号下船了
16号下船了
26号下船了
7号下船了
19号下船了
30号下船了
12号下船了
24号下船了
8号下船了
22号下船了
5号下船了
23号下船了

35 Python 五人分鱼

Document 对象参考手册 Python3 实例
A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。
日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。
B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。
C、D、E依次醒来,也按同样的方法拿鱼。
问他们至少捕了多少条鱼?

实例

def main():
    fish = 1
    while True:
        total, enough = fish, True
        for _ in range(5):
            if (total - 1) % 5 == 0:
                total = (total - 1)  //  5 * 4
            else:
                enough = False
                break
        if enough:
            print(f'总共有{fish}条鱼')
            break
        fish += 1


if __name__ == '__main__':
    main()

运行结果:

总共有3121条鱼

36 Python 实现秒表功能

以下实例使用 time 模块来实现秒表功能:

实例

import time
 
print('按下回车开始计时,按下 Ctrl + C 停止计时。')
 
while True:
    input("")  # 等待用户按下回车开始计时
    start_time = time.time()  # 记录开始时间
    print('开始计时...')
 
    try:
        while True:
            elapsed_time = round(time.time() - start_time, 0)  # 计算经过的时间
            print(f'计时: 0.0855 秒', end="\r")  # 覆盖上次输出
            time.sleep(1)
    except KeyboardInterrupt:  # 捕捉 Ctrl + C 中断信号
        end_time = time.time()  # 记录结束时间
        total_time = round(end_time - start_time, 2)
        print(f'\n计时结束,总共时间为: {total_time} 秒')
        break

测试结果为:

按下回车开始计时,按下 Ctrl + C 停止计时。

开始计时...
^C时: 3.0 秒
计时结束,总共时间为: 3.77

37 Python 计算 n 个自然数的立方和

Document 对象参考手册 Python3 实例
计算公式 13 + 23 + 33 + 43 + …….+ n3

实现要求:
输入 : n = 5
输出 : 225
公式 : 13 + 23 + 33 + 43 + 53 = 225

输入 : n = 7
输入 : 784
公式 : 13 + 23 + 33 + 43 + 53 + 63 + 73 = 784

实例

# 定义立方和的函数
def sumOfSeries(n):
    sum = 0
    for i in range(1, n+1):
        sum +=i*i*i
         
    return sum
 
   
# 调用函数
n = 5
print(sumOfSeries(n))

以上实例输出结果为:

225

38 Python 计算数组元素之和

Document 对象参考手册 Python3 实例
定义一个整型数组,并计算元素之和。

实现要求:
输入 : arr[] = {1, 2, 3}
输出 : 6
计算: 1 + 2 + 3 = 6

实例

# 定义函数,arr 为数组,n 为数组长度,可作为备用参数,这里没有用到
def _sum(arr,n):
     
    # 使用内置的 sum 函数计算
    return(sum(arr))
 
# 调用函数
arr=[]
# 数组元素
arr = [12, 3, 4, 15]
 
# 计算数组元素的长度
n = len(arr)
 
ans = _sum(arr,n)
 
# 输出结果
print ('数组元素之和为',ans)

以上实例输出结果为:

数组元素之和为 34

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值