python个人练习

57

#1.两数求和

#输入

num1 = 2
num2 = 43
result = num1 + num2
print(result)

#输出

#45

#1.两数求和(手敲,无编程助手)

#输入

while True:
    try:
        a = float(input("请输入第一个数:"))
        b = float(input("请输入第二个数:"))
        print("两个数的和是", a + b)
    except ValueError:
        print("请输入正确的数!")

#输出

# 请输入第一个数:a
# 请输入正确的数!
# 请输入第一个数:eew
# 请输入正确的数!
# 请输入第一个数:-32.3
# 请输入第二个数:34.6
# 两个数的和是 2.3000000000000043
# 请输入第一个数:3
# 请输入第二个数:4
# 两个数的和是 7.0

 

#2.求100以内偶数

#输入

List = []
for i in range(100):
    if i % 2 == 0:
        List.append(i)
print(List)

#输出

#[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

#3.求100以内奇数

#输入

List = []
for i in range(100):
    if i % 2 != 0:
        List.append(i)
print(List)

#输出

#[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 93, 9593, 95, 993,93,93,93, 9593,93, 95, 97, 99]

#4.判断素数

#输入

import math

while True:
    try:
        num = int(input('请输入一个大于1的正整数:'))

        # 处理非大于1正整数的情况
        if num <= 1:
            print('输入不是大于1的正整数')
            continue

        flag = False
        sqrt_num = int(math.sqrt(num)) + 1  # 遍历到 sqrt(num) 即可

        for i in range(2, sqrt_num):
            if num % i == 0:
                flag = True
                break

        if flag:
            print(f'{num}不是素数')
        else:
            print(f'{num}是素数')

    except ValueError:
        print("请输入有效的整数!")

#输出

# 请输入一个大于1的正整数:2
# 2是素数
# 请输入一个大于1的正整数:3
# 3是素数
# 请输入一个大于1的正整数:44
# 44不是素数
# 请输入一个大于1的正整数:-2
# 输入不是大于1的正整数
# 请输入一个大于1的正整数:-43
# 输入不是大于1的正整数
# 请输入一个大于1的正整数:1.1
# 请输入有效的整数!
# 请输入一个大于1的正整数:abf
# 请输入有效的整数!

#4.判断素数(手敲)

#输入

import math


def jud_prime():
    while True:
        try:
            flag = False
            a = int(input("请输入一个大于1的正整数:"))
            if a <= 1:
                print("输入不是大于1的正整数,请重新输入!")
                continue
            for i in range(2, int(math.sqrt(a) + 1)):
                if a % i == 0:
                    flag = True
                    break
            if flag:
                print(f"{a}不是素数")
            else:
                print(f"{a}是素数")
        except ValueError:
            print("请输入一个有效的数!")


jud_prime()

#输出

# 请输入一个大于1的正整数:3
# 3是素数
# 请输入一个大于1的正整数:23
# 23是素数
# 请输入一个大于1的正整数:25
# 25不是素数
# 请输入一个大于1的正整数:-1.1
# 请输入一个有效的数!
# 请输入一个大于1的正整数:-1
# 输入不是大于1的正整数,请重新输入!
# 请输入一个大于1的正整数:a
# 请输入一个有效的数!

#5.求阶乘(非递归)

#输入

while True:
    try:
        num = int(input("请输入一个非负整数: "))
        if num < 0:
            print("输入错误,请输入一个非负整数。")
            continue
        sum = 1
        for i in range(1, num + 1):
            sum *= i
        print(f"{num}的阶乘结果为:", sum)
    except ValueError:
        print("输入错误,请输入一个整数。")

#输出

# 0的阶乘结果为: 1
# 请输入一个非负整数: 2
# 2的阶乘结果为: 2
# 请输入一个非负整数: 5
# 5的阶乘结果为: 120
# 请输入一个非负整数: -3
# 输入错误,请输入一个非负整数。
# 请输入一个非负整数: ase
# 输入错误,请输入一个整数。
# 请输入一个非负整数: '''
# 输入错误,请输入一个整数。

#5.求阶乘(非递归)(手敲)

#输入

def jiecheng():
    while True:
        try:
            a = int(input("请输入一个非负整数:"))
            sum = 1
            if a < 0:
                print("输入不是非负整数,请重新输入!")
                continue
            for i in range(1, (a+1)):
                sum *= i
            print(f"{a}的阶乘是{sum}")
        except ValueError:
            print("请输入有效的数!")


jiecheng()

#输出

# 请输入一个非负整数:0
# 0的阶乘是1
# 请输入一个非负整数:1
# 1的阶乘是1
# 请输入一个非负整数:2
# 2的阶乘是2
# 请输入一个非负整数:5
# 5的阶乘是120
# 请输入一个非负整数:-1
# 输入不是非负整数,请重新输入!
# 请输入一个非负整数:-1.3
# 请输入有效的数!
# 请输入一个非负整数:2.5
# 请输入有效的数!

#5.求阶乘(递归)

#输入

def jiecheng(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * jiecheng(n - 1)

while True:
    user_input = input("请输入一个非负整数: ")
    # user_input = input("请输入一个非负整数 (或输入 'q' 退出): ")
    # if user_input.lower() == 'q':
    #     print("程序已退出。")
    #     break

    try:
        num = int(user_input)
        if num < 0:
            print("输入错误,请输入一个非负整数。")
            continue
        print(f"{num}的阶乘结果为:", jiecheng(num))
    except ValueError:
        print("输入错误,请输入一个整数。")

#输出

# 请输入一个非负整数: 0
# 0的阶乘结果为: 1
# 请输入一个非负整数: 1
# 1的阶乘结果为: 1
# 请输入一个非负整数: 7 
# 7的阶乘结果为: 5040
# 请输入一个非负整数: 4
# 4的阶乘结果为: 24
# 请输入一个非负整数: a
# 输入错误,请输入一个整数。
# 请输入一个非负整数: -4
# 输入错误,请输入一个非负整数。
# 请输入一个非负整数: q
# 输入错误,请输入一个整数。

#5.求阶乘(递归)(手敲)

#输入

def jiecheng(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * jiecheng(n-1)


while True:
    try:
        num = int(input("请输入一个非负整数:"))
        if num < 0:
            print("输入不是非负整数,请重新输入!")
            continue
        else:
            sum = jiecheng(num)
        print(f"{num}的阶乘是{sum}")
    except ValueError:
        print("请输入有效的数!")

#输出

# 请输入一个非负整数:5
# 5的阶乘是120
# 请输入一个非负整数:1
# 1的阶乘是1
# 请输入一个非负整数:0
# 0的阶乘是1
# 请输入一个非负整数:-1
# 输入不是非负整数,请重新输入!
# 请输入一个非负整数:-33
# 输入不是非负整数,请重新输入!
# 请输入一个非负整数:6
# 6的阶乘是720
# 请输入一个非负整数:-1.4
# 请输入有效的数!
# 请输入一个非负整数:as
# 请输入有效的数!

#6.求圆的周长

#输入

def circle_perimeter(radius):
    return 2 * 3.14 * radius


while True:
    try:
        radius = float(input("请输入圆的半径: "))
        if radius <= 0:
            print("半径必须大于0,请重新输入。")
            continue
        else:
            print(f"圆的周长是: {circle_perimeter(radius)}")
    except ValueError:
        print("输入无效,请重新输入。")

#输出

# 请输入圆的半径: 2
# 圆的周长是: 12.56
# 请输入圆的半径: 0
# 半径必须大于0,请重新输入。
# 请输入圆的半径: 1.1
# 圆的周长是: 6.908000000000001
# 请输入圆的半径: we
# 输入无效,请重新输入。
# 请输入圆的半径: ...
# 输入无效,请重新输入。
# 请输入圆的半径: -3.13
# 半径必须大于0,请重新输入。

#6.求圆的周长(手敲)

#输入

def cricle_perimeter(radius):
    return 2 * 3.14 * radius


while True:
    try:
        radius = float(input("请输入圆的半径:"))
        if radius <= 0:
            print("半径必须是正数,请重新输入!")
            continue
        else:
            print(f"圆的周长是{cricle_perimeter(radius)}")
    except ValueError:
        print("请输入有效的数!")

#输出

# 请输入圆的半径:-2.2
# 半径必须是正数,请重新输入!
# 请输入圆的半径:-3
# 半径必须是正数,请重新输入!
# 请输入圆的半径:0
# 半径必须是正数,请重新输入!
# 请输入圆的半径:a
# 请输入有效的数!
# 请输入圆的半径:2
# 圆的周长是12.56
# 请输入圆的半径:3
# 圆的周长是18.84
# 请输入圆的半径:10
# 圆的周长是62.800000000000004

#7.求圆的面积

#输入

def circle_area(radius):
    return 3.14 * radius ** 2


while True:
    try:
        radius = float(input("请输入圆的半径: "))
        if radius <= 0:
            print("半径必须大于0,请重新输入。")
            continue
        else:
            print(f"圆的面积是: {circle_area(radius)}")
    except ValueError:
        print("输入无效,请重新输入。")

#输出

# 请输入圆的半径: 1
# 圆的面积是: 3.14
# 请输入圆的半径: 2
# 圆的面积是: 12.56
# 请输入圆的半径: 0
# 半径必须大于0,请重新输入。
# 请输入圆的半径: -1.1
# 半径必须大于0,请重新输入。
# 请输入圆的半径: aer
# 输入无效,请重新输入。
# 请输入圆的半径: 23
# 圆的面积是: 1661.0600000000002
# 请输入圆的半径: 12
# 圆的面积是: 452.16

#7.求圆的面积(手敲)

#输入

def cricle_area(radius):
    return 3.14 * radius ** 2


while True:
    try:
        radius = float(input("请输入圆的半径:"))
        if radius <= 0:
            print("半径必须是正数,请重新输入!")
            continue
        else:
            print(f"圆的面积是{cricle_area(radius)}")
    except ValueError:
        print("请输入有效的数!")

#输出

# 请输入圆的半径:0
# 半径必须是正数,请重新输入!
# 请输入圆的半径:-1.1
# 半径必须是正数,请重新输入!
# 请输入圆的半径:1.1
# 圆的面积是3.7994000000000008
# 请输入圆的半径:2
# 圆的面积是12.56
# 请输入圆的半径:a
# 请输入有效的数!

#7.求直角三角形斜边

#输入

import math


def cal_hypotenuse(a, b):
    c = math.sqrt(a**2 + b**2)
    print("斜边的长度为:", c)


while True:
    try:
        a = float(input("请输入第一条直角边长度:"))
        b = float(input("请输入第二条直角边长度:"))
        if a <= 0 or b <= 0:
            print("边长必须大于0,请重新输入。")
            continue
        cal_hypotenuse(a, b)
    except ValueError:
        print("输入的不是数字,请重新输入。")

#输出

# 请输入第一条直角边长度:a
# 输入的不是数字,请重新输入。
# 请输入第一条直角边长度:..
# 输入的不是数字,请重新输入。
# 请输入第一条直角边长度:2
# 请输入第二条直角边长度:2
# 斜边的长度为: 2.8284271247461903
# 请输入第一条直角边长度:3
# 请输入第二条直角边长度:4
# 斜边的长度为: 5.0
# 请输入第一条直角边长度:-1
# 请输入第二条直角边长度:-1.4
# 边长必须大于0,请重新输入。

#7.求直角三角形斜边(手敲)

#输入

import math


def cal_hypotenuse(a, b):
    return math.sqrt(a ** 2 + b ** 2)


while True:
    try:
        a = float(input("请输入第一条斜边长:"))
        b = float(input("请输入第一条斜边长:"))
        if a <= 0 or b <= 0:
            print("请输入大于0的数!")
            continue
        print("斜边长是", cal_hypotenuse(a, b))
    except ValueError:
        print("请输入有效的数!")

#输出

# 请输入第一条斜边长:3
# 请输入第一条斜边长:4
# 斜边长是 5.0
# 请输入第一条斜边长:-1
# 请输入第一条斜边长:-4
# 请输入大于0的数!
# 请输入第一条斜边长:1.2
# 请输入第一条斜边长:1.5
# 斜边长是 1.9209372712298547
# 请输入第一条斜边长:-1.5
# 请输入第一条斜边长:4.5
# 请输入大于0的数!
# 请输入第一条斜边长:a
# 请输入有效的数!

#8.比较三个数大小

#输入

while True:
    try:
        a = float(input("请输入第一个数:"))
        b = float(input("请输入第二个数:"))
        c = float(input("请输入第三个数:"))
        List = [a, b, c]
        List1 = sorted(List)
        print(f"三个数从小到大为:{List1[0]},{List1[1]},{List1[2]}")
    except ValueError:
        print("输入错误,请重新输入!")

#输出

# 请输入第一个数:32.54
# 请输入第二个数:33
# 请输入第三个数:-3.4
# 三个数从小到大为:-3.4,32.54,33.0
# 请输入第一个数:...
# 输入错误,请重新输入!
# 请输入第一个数:sds
# 输入错误,请重新输入!
# 请输入第一个数:-32
# 请输入第二个数:-245
# 请输入第三个数:43
# 三个数从小到大为:-245.0,-32.0,43.0

#8.比较三个数大小(手敲)

#输入

def sort_three(a, b, c):
    num = [a, b, c]
    num.sort()
    return num


while True:
    try:
        a = float(input("请输入第一个数:"))
        b = float(input("请输入第一个数:"))
        c = float(input("请输入第一个数:"))
        print("三个数从大到小为:", sort_three(a, b, c))
    except ValueError:
        print("请输入有效的数!")

#输出

# 请输入第一个数:-a
# 请输入有效的数!
# 请输入第一个数:..
# 请输入有效的数!
# 请输入第一个数:12
# 请输入第一个数:-3.5
# 请输入第一个数:99.8
# 三个数从大到小为: [-3.5, 12.0, 99.8]
# 请输入第一个数:-443
# 请输入第一个数:-654
# 请输入第一个数:43443
# 三个数从大到小为: [-654.0, -443.0, 43443.0]