python开发通用编程题集

第一部分 语法基础

例1】摄氏温度转化为华氏温度

输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出

转换的公式为如下:fahrenheit=(9/5)*celsius+32

celsius = float(input("请输入摄氏温度:"))
print("华氏温度为:%s" % str((9 / 5) * celsius + 32))

例2】计算圆柱体的体积

输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
area=radius*radius*π
volume=area*length

r = float(input("半径:"))
h = float(input("高:"))
print("圆柱体底面积为:%s" % (str(r * r * math.pi)))
print("圆柱体体积:%s" % (str(r * r * math.pi * h)))

例3】将英尺数转换为米数

输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米

feet = float(input("请输入一个英尺数:"))
print("转化后米数为:%s" % (feet * 0.305))

例4】计算小费

读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是1.5元,合计金额为11.5元

a, b = eval(input("输入:"))
m = b * 0.01
print("小费为:%.2f" % (a * m))
print("合计为:%.2f" % (a + a * m))

例5】对一个整数中的各位数字求和

读取一个0到1000之间的整数,并计算它各位数字之和

num = int(input("请输入0~1000之间的整数:"))
if num > 0 and num < 1000:
    num1 = num // 100
    num2 = num // 10 % 10
    num3 = num % 10
    total = num1 + num2 + num3
    print(total)
else:
    print("error")

例6】计算年数和天数

输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天

min = int(input("请输入分钟数:"))
# days = min // 1440  # 1440=24*60表示一天多少分钟
years = min // 525600
print(years)
days = (min - years * 525600) // 1440
print(days)

例7】计算能量

水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:
Q = M * (finalTemperature - initialTemperature) * 4184
这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计

import decimal


M = float(input("请输入水量"))
initial = float(input("请输入初始温度:"))
final = float(input("请输入最终温度:"))
Q = M * (final - initial) * 4184
print(decimal.Decimal(Q).quantize(decimal.Decimal('0.0')))  # 控制小数位数

例8】分割数字

输入一个四位整数,并以反向顺序显示

a = input()
for i in a[::-1]:
    print(i)

例9】计算三角形的面积

输入三角形的三个顶点坐标,并计算其面积,计算公式如下
s=(side1+side2+side3)/2 \\ area = \sqrt{s(s-side1)(s-side2)(s-side3)}

import math
x1 = float(input("请输入x1:"))
y1 = float(input("请输入y1:"))
x2 =float(input("请输入x2:"))
y2 =float(input("请输入y2:"))
x3 = float(input("请输入x3:"))
y3 = float(input("请输入y3:"))
side1 = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
side2 = math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2)
side3 = math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2)
s = (side1 + side2 + side3) / 2
area = math.sqrt(s * (s - side1) * (s - side2) * (s - side3))
print("三角形面积:%s"%area)

例10】显示当前时间

输入你所在的时区,并输出当前的时间

例11】计算三角形的三个角

输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
A=acos((a*a-b*b-c*c)/(-2*b*c))

B=acos((b*b-a*a-c*c)/(-2*a*c))

C=acos((c*c-b*b-a*a)/(-2*a*b))

其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角

例12】最小数量的硬币

假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币

输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少

def exchange_coins(total_amount):
    coin_types = [100, 25, 10, 5, 1]  # 硬币的面额
    coin_names = ['一元硬币', '两角五分硬币', '一角硬币', '五分硬币', '一分硬币']
    result = {}  # 用于存储兑换结果 字典

    for i in range(len(coin_types)):
        num_coins = total_amount // coin_types[i]  # 计算当前面额的硬币个数
        # 1156//100=11 
        total_amount -= num_coins * coin_types[i]  # 更新剩余金额
        # 1156-=11*100=56
        result[coin_names[i]] = num_coins  # 存储结果
        # result['一元硬币']=11
    return result


total_amount1 = int(input("请输入总金额:"))
exchange_result = exchange_coins(total_amount1)
print("兑换结果:", exchange_result)

例13】正多边形的面积

正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
area = \frac{n*s^2}{4*tan(\frac{π}{n})}

import math


def area_shape(n, s):
    area = (n * s * s) / (4 * (math.tan((math.pi) / n)))
    return area


n, s = eval(input("请输入边的个数和边的长度:"))
print("边长为s的正边形的面积为%.2f" % (area_shape(n, s)))

例14】计算身体质量指数

BMI是根据体重测量健康的方式,通过以千克为单位的体重除以以米为单位的身高的平方计算而出

BMI指数解读如下:

BMI解释
BMI < 18.5超轻
18.5 ≤ BMI < 25.0标准
25.0 ≤ BMI < 30.0超重
30.0 ≤ BMI肥胖
height = float(input("请输入身高:"))
weight = float(input("请输入体重:"))
BMI = weight / height ** 2
print(BMI)
if BMI < 18.5:
    print("过轻")
elif BMI < 24:
    print("正常")
elif BMI < 27:
    print("过重")
elif BMI < 30:
    print("轻度肥胖")
elif BMI < 35:
    print("中度肥胖")
else:
    print("重度肥胖")

例15】判定闰年

一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年

def leap_year(n):
    if n % 4 == 0 and n % 100 != 0 or n // 400 == 0:
        print("Yes")
    else:
        print("No")


n = int(input("请输入年份:"))
leap_year(n)

例16】中彩票

随机产生一个两位数数字,然后用户输入一个两位数数字,并根据以下规则判定用户赢得的奖金是多少

(1)输入的数字和随机产生的数字完全相同(包括顺序),奖金为10000元

(2)输入的数字和随机产生的数字相同(不包括顺序),奖金为3000元

(3)输入的数字和随机产生的数字有一位数相同,奖金为1000美元

(4)输入的数字和随机产生的数字都不相同,没有奖金,0元

import random


def random_guess(num):
    num1 = num // 10
    num2 = num - num1
    number = random.randint(10, 100)
    print(number)
    number1 = number // 10
    number2 = number - number1
    if 10 < num < 100:
        if num == number:
            print("奖金为10000元")
        elif num1 == number2 and num2 == number1:
            print("奖金为3000元")
        elif num1 == number2 or num2 == number1 or num1 == number1 or num2 == number2:
            print("奖金为1000元")
        else:
            print("未中奖")
    else:
        print("输入错误")


num = int(input("请输入数字:"))
random_guess(num)

例17】解一元二次方程

一元二次方程$ax^2+bx+c=0 (a != 0)$的解可以使用下面的公式计算
r_1=\frac{-b+\sqrt{b^2-4ac}}{2a},r_2=\frac{-b-\sqrt{b^2-4ac}}{2a}
其中$b^2-4ac$称为判别式,如果它为正,则方程有两个实数解;为零,方程只有一个实数解;为负,没有实数解

import math


def solution_equation(a, b, c):  # 解方程
    discriminant = b * b - 4 * a * c
    if discriminant > 0:
        r1 = (-b + math.sqrt(discriminant)) / 2 * a
        r2 = (-b - math.sqrt(discriminant)) / 2 * a
        print("%.2f" % r1)
        print("%.2f" % r2)
    elif discriminant < 0:
        print("无实数解")
    else:
        r1 = (-b + math.sqrt(discriminant)) / 2 * a
        r2 = (-b - math.sqrt(discriminant)) / 2 * a
        print("%.2f" % r1)
        print("%.2f" % r2)


a, b, c = eval(input("请输入三个数据:"))
solution_equation(a, b, c)

例18】解2*2线程方程

如有一个2×2的线程方程组:
ax+by=e

cx+dy=f
你可以使用克莱姆法则解该线性方程:
x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc}

其中$ad-bc$为判别式,如果为零则输出无解

a, b, c, d, e, f = eval(input("请输入数据:"))
discriminant = a * d - b * c
if discriminant == 0:
    print("无解")
else:
    x = (e * d - b * f) / discriminant
    y = (a * f - e * c) / discriminant
    print("%.1f" % x)
    print("%.1f" % y)

例19】未来是周几

输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,...,星期六是6)

并输入今天之后到未来某天的天数,然后输出该天是星期几

a, n = eval(input("请输入今日是星期几和未来几天:"))
week_num = [0, 1, 2, 3, 4, 5, 6]
week_word = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
for i in range(0, 7):
    if a == week_num[i]:
        # print(week_word[i])
        print(week_word[i + n])

例20】本年中的第几天

给定某年、某月、某日的一个日期,计算该日是今年中的第几天

a, b, c = eval(input("请输入年,月,日:"))
b_days = 0
total_days = 0
month_num = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
month = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
for i in range(0, 12):
    if b == i + 1:
        print(month[i])
        for j in range(0, i):
            b_days += month_num[j]
total_days = b_days + c
print(total_days)

例21】剪刀石头布

计算机随机产生一个数字0、1和2分别表示剪刀、石头和布

用户输入数字0、1或2,输出用户赢、计算机赢或平局

import random

player_num = int(input("请输入数字(0,1,2):"))
game_word = ["剪刀", '石头', '布']
computer_num = random.randint(0, 3)
print(f"玩家输出:{game_word[player_num]}")
print(f"电脑输出:{game_word[computer_num]}")
if player_num == computer_num:
    print("平局")
elif player_num == computer_num - 2 or player_num == computer_num + 1:
    print("玩家胜出")
else:
    print("电脑胜出")

例22】三角形的周长

输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法

如果任意两边之和大于第三边则输入都是合法的

a, b, c = eval(input("请输入三角形的三边:"))
if a + b > c and a + c > b and c + b > a:
    C = a + b + c
    print(f"三角形的周长为:{C}")
else:
    print("非法")

例23】一周的星期几

泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:
h=(q+\lfloor\frac{26(m+1)}{10}\rfloor+k+\lfloor\frac{k}{4}\rfloor+\lfloor\frac{j}{4}\rfloor+5j) \% 7

(1)$h$是指一周的星期几(0表示星期六、1表示星期天、...、6表示星期五)

(2)$q$是一个月的哪一天

(3)$m$是月份(3表示三月、4表示四月、...、12表示十二月),其中一月和二月都是按照前一年的13月和14月来计数的,所以还得把年份改为前一年

(4)$j$是世纪数,即$\lfloor\frac{year}{100}\rfloor$

(5)$k$是一个世纪的某一年,即$year \% 100$

(6)$\lfloor\rfloor$为向下取整符号

例24】直线的交点

直线A上的两个点是$(x1,y1)$和$(x2,y2)$,直线B上的两个点是$(x3,y3)$和$(x4,y4)$

如果两条直线有交点,可以通过解下面的线性等式找出:
(y_1-y_2)x-(x_1-x_2)y=(y_1-y_2)x_1-(x_1-x_2)y_1

(y_3-y_4)x-(x_3-x_4)y=(y_3-y_4)x_3-(x_3-x_4)y_3
如果没有解,则表示两条直线平行

try:
    x1, y1, x2, y2, x3, y3, x4, y4 = eval(input("请输入数据:"))
    x = ((x3 - x4) * ((y1 - y2) * x1 - (x1 - x2) * y1) - (x1 - x2) * ((y3 - y4) * x3 - (x3 - x4) * y3)) / (
            (y1 - y2) * (x3 - x4) - (y3 - y4) * (x1 - x2))
    y = ((y3 - y4) * ((y1 - y2) * x1 - (x1 - x2) * y1) - (y1 - y2) * ((y3 - y4) * x3 - (x3 - x4) * y3)) / (
            (y1 - y2) * (x3 - x4) - (y3 - y4) * (x1 - x2))
except ZeroDivisionError:
    print("两直线平行")
else:
    print("直线的交点为(%.2f,%.2f)" % (x, y))

例25】回文数

输入一个三位整数,然后判断其是否为一个回文数

如果一个数从左向右和从右向左读取时是一样的,那么这个数就是回文数

a = input("请输入一个字符串:")
b = a[::-1]
if b == a:
    print("是")
else:
    print("否")

例26】两个矩形

判断两个矩形之间的关系:包含,重叠,相离

x1, y1, a1, b1 = eval(input("请输入第一个矩形的中心坐标和宽高:"))
x2, y2, a2, b2 = eval(input("请输入第二个矩形的中心坐标和宽高:"))
if (x1 < x2 + a2 and x1 + a1 > x2 and y1 < y2 + b2 and y1 + b1 > y2):
    print("重叠")
else:
    if ((x1 + a1 <= x2 or x2 + a2 <= x1) or (y1 + b1 <= y2 or y2 + b2 <= y1)):
        print("相离")
    else:
        print("包含")

第二部分

例27~30】打印数字

'''
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
'''

def pattern_A(n):
    for i in range(1, n + 1):
        for j in range(1, i + 1):
            print(j, end=" ")
        print()


n = int(input("请输入打印行数:"))
pattern_A(n)



'''
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
'''
n = int(input("请输入打印行数:"))
for i in range(n, 0, -1):
    for j in range(i):
        print(j + 1, end=" ")
    print()




'''
          1 
        2 1 
      3 2 1 
    4 3 2 1 
  5 4 3 2 1 
6 5 4 3 2 1 
'''
n = int(input("请输入打印行数:"))
for i in range(1, n + 1):
    for j in range(n - i):
        print(" ", end=" ")
    for j in range(i, 0, -1):
        print(j, end=" ")
    print()





'''
1 2 3 4 5 6
  1 2 3 4 5
    1 2 3 4
      1 2 3
        1 2
          1
'''
n = int(input("请输入打印行数:"))
for i in range(n, 0, -1):
    for j in range(n - i):
        print(" ", end=" ")
    for j in range(i):
        print(j + 1, end=" ")
    print()

'''
            1
          2 1 2
        3 2 1 2 3
      4 3 2 1 2 3 4
    5 4 3 2 1 2 3 4 5
  6 5 4 3 2 1 2 3 4 5 6
7 6 5 4 3 2 1 2 3 4 5 6 7
'''
n = int(input("请输入打印行数:"))
for i in range(1, n + 1):
    for j in range(n - i):
        print(" ", end=" ")
    for j in range(i, 0, -1):
        print(j, end=" ")
    for j in range(2, i + 1):
        print(j, end=" ")
    print()






'''
                        1
                    1	2	1
                1	2	4	2	1
            1 	2	4	8	4	2	1
        1	2	4	8	16	8	4	2	1
    1	2	4	8	16	32	16	8	4	2	1
1	2	4	8	16	32	64	32	16	8	4	2	1
'''
n = int(input("请输入打印行数:"))
for i in range(1, n + 1):
    for j in range(n - i):
        print(" ", end=" ")
    for j in range(i):
        print(2 ** j, end=" ")
    for j in range(i - 2, -1, -1):
        print(2 ** j, end=" ")
    print()







例30~32】打印菱形


'''
    *
   * *
  * * *
 * * * *
* * * * *
 * * * *
  * * *
   * *
    *
'''
n = int(input("请输入打印行数(n为奇数):"))
for i in range(1, n // 2 + 2):
    for j in range(n // 2 + 1 - i):
        print(" ", end="")
    for j in range(i):
        print("* ", end="")
    print()
for i in range(n // 2 + 2, 0, -1):
    for j in range(n // 2 + 3 - i):
        print(" ", end="")
    for j in range(i - 2):
        print("* ", end="")
    print()





'''
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
'''
n = int(input("请输入打印行数(n为奇数):"))
for i in range(1, n // 2 + 2):
    for j in range(n // 2 + 1 - i):
        print(" ", end="")
    for j in range(2 * i - 1):
        print("*", end="")
    print()
for i in range(n // 2 + 2, 0, -1):
    for j in range(n // 2 + 3 - i):
        print(" ", end="")
    for j in range(2 * i - 1 - 4):
        print("*", end="")
    print()




例33】猜数字

import random

computer_num = random.randint(1, 101)
num = int(input("请用户输入数字:"))
while computer_num != num:
    if num > computer_num:
        print("高了")
    else:
        print("低了")
    num = int(input("请用户重新输入数字:"))
print(f"猜中了!答案就是{num}")

例34】最大公约数

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a


# 输入两个正整数
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))

# 计算最大公约数
result = gcd(num1, num2)
print("最大公约数是:", result)

例35】判断素数

num = int(input("请输入一个正整数:"))
flag = True
for i in range(2, num):
    if num % i == 0:
        flag = False
        break
if flag:
    print("Yes")
else:
    print("No")

例36】最小公倍数

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a


def lcm(a, b):
    return abs(a * b) // gcd(a, b)


num1, num2 = eval(input("请输入两个数字:"))
result = lcm(num1, num2)
print(f"The least common multiple of {num1} and {num2} is {result}")

例37】整数的素因子

def prime_factor(num):
    arr = []
    i = 2
    while num > 2:
        if num % i == 0:
            arr.append(i)
            num = num / i
        else:
            i += 1
    return arr


num = int(input("输入:"))
print(prime_factor(num))

例38】完全数

def prime_factor(num):
    Sum = 0
    for i in range(1, num):
        if num % i == 0:
            Sum += i
    if Sum == num:
        return "yes"
    else:
        return "no"


num = int(input("请输入一个数:"))
print(prime_factor(num))

例39】前50个素数

for i in range(1,50):
    flag = True
    for j in range(2, i):
        if i % j == 0:
            flag = False
            break
    if flag:
        print(f"{i}是质数")

例40】计算pi

j = 1
sum = 0
 
for i in range(10000):  
    if (i + 1) % 2 == 0:
        j = -(2 * (i + 1) - 1)
    else:
        j = (2 * (i + 1) - 1)
    n = 4 / j
    sum = sum + n
    
print(sum)

例41】计算e

import math
 
def calc_e(n):
    e = 1
    for i in range(1, n+1):
        e += 1 / math.factorial(i)
    return e
 
print(calc_e(1000)) 

例42】三局获胜剪刀石头布游戏

import random

gesture = ["石头", "剪刀", "布"]
winu = 0
winc = 0
while winu < 3 and winc < 3:
    print("0:石头  1:剪刀  2:布")
    user = int(input("请输入你想选择的序号:"))
    computer = random.randint(0, 2)
    print(f"玩家:{gesture[user]},计算机:{gesture[computer]}")
    if user == computer:
        print("平局")
    elif user == computer + 2 or user == computer - 1:
        print("玩家胜出")
        winu += 1
    else:
        print("电脑胜出")
        winc += 1
print("-" * 20)
if winu == 3:
    print("玩家获胜")
else:
    print("电脑获胜")

例43~44】组合问题

total = 0
for i in range(1, 8):
    for j in range(i + 1, 8):
        total += 1
        print(i, j)
print(total)





total = 0
for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):
            if i != j and i != k and j != k:
                total += 1
                print(f"{i}{j}{k}")
print(total)

例45】水仙花数

for i in range(1, 10):
    for j in range(10):
        for k in range(10):
            if i ** 3 + j ** 3 + k ** 3 == i * 100 + j * 10 + k:
                print(f"{i}{j}{k}")

例46】青蛙跳台阶

def jump(n):
    if n == 1:
        return 1
    elif n == 2:
        return 2
    else:
        return jump(n - 1) + jump(n - 2)


n = int(input("请输入台阶数:"))
print(jump(n))

例47】堆叠相加

def sum_num(a, n):
    total = 0
    number = 0
    for i in range(1, n + 1):
        number = number * 10 + a
        total += number
    return total


a = int(input("请输入数字:"))
n = int(input("请输入有几组:"))
print(sum_num(a, n))

例48~51】进制转换

# 十进制转二进制
num_D = int(input("请输入一个十进制数:"))
num_B = bin(num_D)
print(num_B)



# 二进制转十进制
num_B = input("请输入一个二进制数:")
num_D = int(num_B, base=2)
print(num_D)


# 十进制转十六进制
num_D = int(input("请输入一个十进制数:"))
num_H = hex(num_D)
print(num_H)



# 十六进制转十进制
num_H = input("请输入一个十六进制数:")
num_D = int(num_H, base=16)
print(num_D)

例52】最长公共前缀

s1 = input("请输入字符串1:")
s2 = input("请输入字符串2:")
for i in range(len(s1)):
    if s1[i] == s2[i]:
        print(s1[i], end="")
    else:
        break

例53】字串出现的次数

s1 = input("请输入字符串1:")
s2 = input("请输入字符串2:")
count = 0  # 次数
i = 0  # 长度
while i < len(s1):
    if s1[i:i + len(s2)] == s2:  # [i,i+len(s2))
        count += 1
        i += len(s2)
    else:
        i += 1
print(count)

例54】最长公共子串

def find_lcs(str1, str2):
    lcs = set()
    if len(str1) > len(str2):
        str1, str2 = str2, str1

    for i in range(len(str1), 0, -1):
        flag = False
        for j in range(len(str1) - i + 1):
            s = str1[j:i + j]
            if str2.find(s) > -1:
                lcs.add(s)
                flag = True
            else:
                flag = False
        if flag:
            break
    print("最长公共子串为:", lcs)


str1 = str(input("请输入str1:"))
str2 = str(input("请输入str2:"))
find_lcs(str1, str2)

例55】检查密码


s1 = str(input("输入"))


def string_pass(s1):
    get_num = 0
    get_capital = 0
    if len(s1) < 8:
        return "no"
    for i in s1:
        if ord(i) < 48 or 57 < ord(i) < 65 or 90 < ord(i) < 96 or ord(i) > 122:
            return "no"
        if 47 < ord(i) < 58:
            get_num += 1
        if 64 < ord(i) < 91:
            get_capital += 1
    if get_num < 2:
        return "no"
    if get_capital < 2:
        return "no"
    return "yes"


print(string_pass(s1))

例56】回文素数

def is_prime(p):  # 判断是否为素数
    for i in range(2, p):
        if p % i == 0:
            return False
    return True


def back_prime(p):
    i = int(str(p)[::-1])
    if i == p and is_prime(i) and is_prime(p):
        print(p, end=" ")


for i in range(10, 1000):
    back_prime(i)

例57】反素数

def is_prime(p):  # 判断是否为素数
    for i in range(2, p):
        if p % i == 0:
            return False
    return True


def back_prime(p):
    i = int(str(p)[::-1])
    if is_prime(p) and is_prime(i):
        print(p)


for i in range(10, 1000):
    back_prime(i)

例58】双素数

def is_prime(p):  # 判断是否为素数
    for i in range(2, p):
        if p % i == 0:
            return False
    return True


def double_prime(start, end):
    for i in range(start, end):
        if is_prime(i) and is_prime(i + 2):
            print(f"({i}, {i + 2}) 是一个双素数")


start = int(input("请输入范围的起始值:"))
end = int(input("请输入范围的结束值:"))
double_prime(start, end)

例59】梅森素数

def is_prime(p):  # 判断是否为素数
    for i in range(2, p):
        if p % i == 0:
            return False
    return True


def meisen_prime(p):  # 判断p素数是否可以写成2的(p-1)次方
    if is_prime(p):
        meisen_number = 2 ** p - 1
        if is_prime(meisen_number):
            return meisen_number
    return None


for p in range(2, 32):
    result = meisen_prime(p)
    if result:
        print(p, end=" ")

例60】平方根的近似求法

def square_root(n):
    lastGuess = n / 3  # 赋予一个最初猜测的值
    for i in range(10):  # 循坏10次或无数次,寻找出最近似nextGuess的值
        nextGuess = (1 / 2) * (lastGuess + (n / lastGuess))
        lastGuess = nextGuess
    return nextGuess


n = int(input("请输入一个需要求平方根的值:"))
print(square_root(n))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值