Python练习6

Demo01 摄氏温度转化为华氏温度

题目描述

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

转换的公式为如下:
f a h r e n h e i t = ( 9 / 5 ) ∗ c e l s i u s + 32 fahrenheit=(9/5)*celsius+32 fahrenheit=(9/5)celsius+32
输入输出描述

输入一个值表示摄氏温度celsius

输出华氏温度fahrenheit ,结果保留一位小数点

示例

输入:

43

输出:

109.4

代码:

print("输入:")
num1=float(input())
def wenduzhuanhuan(x):
    return x*1.8+32
print("输出:")
print(wenduzhuanhuan(num1))

Demo02 计算圆柱体的体积

题目描述

输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
a r e a = r a d i u s ∗ r a d i u s ∗ π area=radius*radius*π area=radiusradiusπ

v o l u m e = a r e a ∗ l e n g t h volume=area*length volume=arealength

输入输出描述

分别输入圆柱的半径radius和高度length,两个数据之间用空格分隔

输出两行,第一行为圆柱底面积area,第二行为圆柱体积volume,结果保留两位小数点

示例

输入:

5.5 12

输出:

95.03

1140.41

代码:

print("输入:")
radius,length=map(float,input().split())
def jisuan(x,y):
    s=x*x*3.14159265359
    v=s*y
    return s,v
area,volfume=jisuan(radius,length)
print("输出:")
print("%.2f"%(area))
print("%.2f"%(volfume))

Demo03 将英尺数转换为米数

题目描述

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

输入输出描述

输入一个数据表示英尺数

输出转换后的米数,结果保留四位小数点

示例

输入:

16.5

输出:

5.0325

代码:

print("输入:")
num=float(input())
def zhuanhuan(x):
    return x*0.305
num2=zhuanhuan(num)
print("%.4f"%(num2))

Demo04 计算小费

题目描述

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

输入输出描述

分别输入小计和酬金率,两个数据用之间用空格分隔

输出两行,第一行为小费,第二行为合计金额,结果保留两位小数

示例

输入:

15.69 15

输出:

2.35

18.04

代码:

print("输入:")
num=float(input())
def zhuanhuan(x):
    return x*0.305
print("输出:")
num2=zhuanhuan(num)
print("%.4f"%(num2))

Demo05 对一个整数中的各位数字求和

题目描述

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

输入输出描述

输入一个[0,1000]之间的整数

输出该数字的各位数字之和

示例2

输入:

12

输出:

3

代码:

print("输入:")
num=int(input())
if num<0 or num>1000:
    num=int(input("该数不是0到1000之间的整数,请重新输入:"))
def qiuhe(x):
    a=x//10
    b=x%10
    if a==0:
        return b
    return b+qiuhe(a)
print("输出:")
print(qiuhe(num))

Demo06 计算年数和天数

题目描述

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

输入输出描述

输入一个分钟数

输出两行,第一行为年数,第二行为天数

示例

输入:

1000000000

输出:

1902

214

代码:

print("输入:")
num =int(input())
def zhuanhuan(x):
    a=x//(365*24*60)
    b=(x/(365*24*60)-a)*365
    return a,b
num1,num2=zhuanhuan(num)
print("输出:")
print(num1)
print(int(num2))

Demo07 计算能量

题目描述

水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:
Q = M ∗ ( f i n a l T e m p e r a t u r e − i n i t i a l T e m p e r a t u r e ) ∗ 4184 Q = M * (finalTemperature - initialTemperature) * 4184 Q=M(finalTemperatureinitialTemperature)4184
这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计

输入输出描述

输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度

输出所需的能量值,结果保留一位小数

示例

输入:

55.5

3.5

10.5

输出:

1625484.0

代码:

print("输入:")
num1=float(input())
num2=float(input())
num3=float(input())
def jisuan(x,y,z):
    return x*4184*(z-y)
p=jisuan(num1,num2,num3)
print("输出:")
print("%.1f"%(p))

Demo08 分割数字

题目描述

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

输入输出描述

输入一个四位整数

输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位

示例

输入:

5213

输出:

3

1

2

5

代码:

print("输入:")
num=int(input())
def fenge(x):
    while x>0:
        print(x%10)
        x=x//10
print("输出:")
fenge(num)

Demo09 计算三角形的面积

题目描述

输入三角形的三个顶点坐标,并计算其面积,计算公式如下
s = ( s i d e 1 + s i d e 2 + s i d e 3 ) / 2 a r e a = s ( s − s i d e 1 ) ( s − s i d e 2 ) ( s − s i d e 3 ) s=(side1+side2+side3)/2 \\ area = \sqrt{s(s-side1)(s-side2)(s-side3)} s=(side1+side2+side3)/2area=s(sside1)(sside2)(sside3)
输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三角形的面积,结果保留一位小数

示例

输入:

1.5 -3.4 4.6 5 9.5 -3.4

输出:

33.6

代码:

print("输入:")
x1,y1,x2,y2,x3,y3=map(float,input().split())
def mianji(x1,y1,x2,y2,x3,y3):
    s=0.5 * ((x1*y2-x2*y1)+(x2*y3-x3*y2)+(x3*y1-x1*y3))
    return s
print("输出:")
print("%.1f"%(mianji(x1,y1,x2,y2,x3,y3)))

Demo10 显示当前时间

题目描述

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

输入输出描述

输入时区,如东八区为8,西五区为-5

输出二十四小时制的时间,格式为 时:分:秒

示例

输入:

8

输出:

21:43:12

代码:

from datetime import datetime, timedelta

# 输入时区信息
timezone = int(input("请输入您所在的时区:"))

# 获取当前时间并根据时区调整
current_time = datetime.utcnow() + timedelta(hours=timezone)

# 输出调整后的时间
print(current_time.strftime('%H:%M:%S'))

Demo11 计算三角形的三个角

题目描述

输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
A = a c o s ( ( a ∗ a − b ∗ b − c ∗ c ) / ( − 2 ∗ b ∗ c ) ) B = a c o s ( ( b ∗ b − a ∗ a − c ∗ c ) / ( − 2 ∗ a ∗ c ) ) C = a c o s ( ( c ∗ c − b ∗ b − a ∗ a ) / ( − 2 ∗ a ∗ b ) ) 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=acos((aabbcc)/(2bc))B=acos((bbaacc)/(2ac))C=acos((ccbbaa)/(2ab))
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角

输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三行,分别为A、B、C三个角的度数,结果保留两位小数

示例

输入:

1 1 6.5 1 6.5 2.5

输出:

15.26

90.00

74.74

代码:

import math

# 输入三角形的三个顶点坐标
x1, y1, x2, y2, x3, y3 = map(float, input().split())

# 计算三条边的长度
a = math.sqrt((x2 - x3)**2 + (y2 - y3)**2)
b = math.sqrt((x1 - x3)**2 + (y1 - y3)**2)
c = math.sqrt((x1 - x2)**2 + (y1 - y2)**2)

# 计算三个角的角度(注意要先将边长按升序排列)
A = math.acos((a*a - b*b - c*c) / (-2 * b * c))
B = math.acos((b*b - a*a - c*c) / (-2 * a * c))
C = math.acos((c*c - b*b - a*a) / (-2 * a * b))

# 将弧度转换为角度制,并保留两位小数输出
print("{:.2f}".format(math.degrees(A)))
print("{:.2f}".format(math.degrees(B)))
print("{:.2f}".format(math.degrees(C)))

Demo12 最小数量的硬币

题目描述

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

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

输入输出描述

输入总金额

输出每种硬币的个数

示例

输入:

11.56

输出:

11个一元硬币

2个两角五分硬币

0个一角硬币

1个五分硬币

1个一分硬币

Demo13 正多边形的面积

题目描述

正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
a r e a = n ∗ s 2 4 ∗ t a n ( π n ) area = \frac{n*s^2}{4*tan(\frac{π}{n})} area=4tan(nπ)ns2
输入输出描述

输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔

输出边长为s的正n多边形的面积,结果保留两位小数

示例

输入:

5 6.5

输出:

72.69

代码:

import math
 
print("输入:")
n , s = input().split()
area = (float(n) * float(s) ** 2) / (4 * math.tan(math.pi / float(n)))
print("面积为:%.2f"%area)

Demo16 中彩票

题目描述

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

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

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

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

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

输入输出描述

输入一个两位数

输出两行,第一行输出那个随机产生的两位数,第二行输出用户的奖金

示例1

输入:

12

输出:

12

10000

示例2

输入:

12

输出:

21

3000

代码:

import random
 
num_RAN = random.randint(10 , 99)
print("输入:")
num = int(input())
print("输出:")
print(num_RAN)
#拆解随机数并组成列表
num_RAN_one = num_RAN // 10
num_RAN_two = num_RAN % 10
temp_RAN = [num_RAN_one , num_RAN_two]
#拆解输入的数
num_one = num //10
num_tow = num % 10
#判断并输出
if num_RAN == num :
    print("10000")
elif num_one in temp_RAN and num_tow in temp_RAN and num_one != num_tow:
    print("3000") 
elif num_one in temp_RAN or num_tow in temp_RAN :
    print("1000")
else :
    print("0")

Demo17 解一元二次方程

题目描述

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

输入输出描述

输入a、b、c三个数据,数据之间用空格分隔

两个解每行输出一个;一个解单行输出;无解则单行输出无实数解,保留两位小数

示例1

输入:

1.0 3 1

输出:

-0.38

-2.62

代码:

print("输入:")
a,b,c = input().split()
r_1 = ( - float(b) + (float(b) ** 2 - 4 * float(a) * float(c)) ** 0.5) / (2 * float(a))
r_2 = ( - float(b) - (float(b) ** 2 - 4 * float(a) * float(c)) ** 0.5) / (2 * float(a))
print("输出:")
if float(b) ** 2 - 4 * float(a) * float(c) > 0 :
    print(" %.2f"%r_1 , "\n" , "%.2f"%r_2 )
elif float(b) ** 2 - 4 * float(a) * float(c) == 0 :
    print("%.2f"%r_1)
else :
    print("无实数解")

Demo19 未来是周几

题目描述

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

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

输入输出描述

输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔

输出未来某天是星期几

示例1

输入:

1 3

输出:

星期四

示例2

输入:

0 31

输出:

星期三

代码:

#循环判断输入数据
print("输入:")
while True :
    day_t , day_f = input().split()
    if int(day_t) > 6 or int(day_t) < 0 :
        print("输入错误请重新输入")
    else :
        break
#数值判断日期并输出
print("输出:")
if int(day_t) + int(day_f) % 7 == 0 or int(day_t) + int(day_f) % 7 == 7 :
    print("星期日")
elif int(day_t) + int(day_f) % 7 == 1 :
    print("星期一")
elif int(day_t) + int(day_f) % 7 == 2 :
    print("星期二") 
elif int(day_t) + int(day_f) % 7 == 3 :
    print("星期三")
elif int(day_t) + int(day_f) % 7 == 4 :
    print("星期四")
elif int(day_t) + int(day_f) % 7 == 5 :
    print("星期五")
elif int(day_t) + int(day_f) % 7 == 6 :
    print("星期六")   

Demo22 三角形的周长

题目描述

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

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

输入输出描述

输入三个数据表示三边,数据之间用空格分隔

输出三角形的周长,如果非法则输出非法

示例1

输入:

1 1 1

输出:

3

示例2

输入:

1 3 1

输出:

非法

Demo25 回文数

题目描述

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

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

输入输出描述

输入一个数字

输出Yes表示是回文数,否则输出No

示例1

输入:

121

输出:

Yes

代码:

print("输入:")
while True :
    num = int(input()) 
    if num > 999 or num < 100 :
        print("请重新输入")
    else :
        break
num_H = num // 100
num_D = num % 100 // 10
num_S = num % 10
print("输出:")
if int(str(num_H) + str(num_D) + str(num_S)) == int(str(num_S) + str(num_D) + str(num_H)) :
    print("Yes")
else :
    print("No")

Demo34 最大公约数I

题目描述

输入两个正整数,计算其最大公约数,例如4和2的最大公约数是2,16和24的最大公约数是8

输入输出描述

输入两个数字

输出最大公约数

示例1

输入:

16 24

输出:

8

代码:

print("输入:")
num_1,num_2 = map(int ,input().split())
print("输出:")
#取小的那个值以下的值进行判断
if num_1 >= num_2 :
    for i in range(1 , num_2 + 1) :
        #若该数可以同时被这两个数整除,则为公约数
        if num_1 % i == 0 and num_2 % i == 0 :
            #i逐渐增加,直到达到最大的公约数
            num = i
    print(num)
if num_1 <= num_2 :
    for i in range(1 , num_1 + 1) :
        if num_1 % i == 0 and num_2 % i == 0 :
            num = i
    print(num)

Demo36 最小公倍数

题目描述

输入两个正整数,计算其最小公倍数,例如4和2的最小公倍数是4,3和5的最小公倍数是15

输入输出描述

输入两个正整数

输出最小公倍数

示例1

输入:

3 9

输出:

9

代码:

print("输入:")
num_1,num_2 = map(int,input().split())
print("输出:")
if num_1 >= num_2 :
    for i in range(num_1 , num_2 * num_1 + 1) :
        if i % num_1 == 0 and i % num_2 == 0 :
            num = i
            break
    print(num)
elif num_1 <= num_2 :
    for i in range(num_2 , num_1 * num_2 + 1) :
        if i % num_1 == 0 and i % num_2 == 0 :
            num = i
            break
    print(num)

Demo37 整数的素因子

题目描述

输入一个正整数,然后找出它所有的最小因子,也称之为素因子

输入输出描述

输入一个正整数

输出多行,每行输出一个素因子

示例1

输入:

120

输出:

2 2 2 3 5

解释:

2 * 2 * 2 *3 * 5 = 120

代码:

print("输入:")
num = int(input())
array = []
num_t = num
i = 2
while i <= num :
    if num % i == 0 :
        array.append(i)
        num //= i 
    else :
        i += 1
print("输出")
temp = len(array)
for i in range(temp):
    print(array[i],end=" ")

Demo38 完全数

题目描述

如果一个正整数等于除了它本身之外所有正因子的和,那么这个数称为完全数

例如 6 = 3 + 2 + 1,28 = 14 + 7 + 4 + 2 + 1

输入输出描述

输入一个正整数

输出该数是否为完全数

示例1

输入:

6

输出:

Yes

print("输入:")
num = int(input())
array = []
num_t = num
sum = 0
i = 2
while i <= num :
    if num % i == 0 :
        array.append(i)
        num //= i 
    else :
        i += 1
for i in array :
    sum += i
print("输出:")
if sum + 1 == num_t :
    print("yes")
else :
    print("no")

Demo40 计算π

题目描述

你可以使用下面的数列近似计算π
π = 4 ( 1 − 1 3 + 1 5 − 1 7 + 1 9 − 1 11 + . . . + ( − 1 ) i + 1 2 i − 1 ) π=4(1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}+...+\frac{(-1)^{i+1}}{2i-1}) π=4(131+5171+91111+...+2i1(1)i+1)
当i越大时,计算结果越近似于π

代码:

i= int(input("请输入计算次数:"))
temp = 1
k = 1
for j in range(3 , 2 * i , 2) :
    temp = temp + ((- 1) ** k) / j
    k += 1
π = temp * 4
print(π)

Demo41 计算e

题目描述

你可以使用下面的数列近似计算e
e = 1 + 1 1 ! + 1 2 ! + 1 3 ! + 1 4 ! + . . . + 1 i ! e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+...+\frac{1}{i!} e=1+1!1+2!1+3!1+4!1+...+i!1
当i越大时,计算结果越近似于e

代码:

i= int(input("请输入计算次数:"))
temp = 1
e = 1
for j in range(1 , i + 1) :
    for k in range(1 , j + 1) :
        temp = temp * k
    e = e + 1 / temp
print(e)

Demo43 组合问题I

题目描述

在数字范围[1,7]之间,任意选择两个不相同的数作为一个组合,输出每一组组合,并统计所有组合的个数

注:组合(a,b)与组合(b,a)算同一种组合,只记录一次

代码:

#定义一个数计算总个数
sum = 0
#两个循环,第一个输出前一个数,第二个输出后一个数,输出一次sum+1
for i in range(1 , 8) :
    for j in range(i , 8) :
        print(i , j)
        sum  += 1

Demo46 青蛙跳台阶

题目描述

一只青蛙,一次可以跳一个台阶或者两个台阶,现有n个台阶,问该青蛙有多少种不同的跳法?

例如:两个台阶,有两种跳法(1+1,2);四个台阶,有五种跳法(1+1+1+1,2+1+1,1+2+1,1+1+2,2+2)

代码:

a=int(input("请输入台阶数:"))
def concursion(n):
    if n==1 or n==2:
        return n
    return concursion(n-1)+concursion(n-2)
print(concursion(a))

Demo47 堆叠相加

题目描述

现有堆叠相加模式 a + a a + a a a + a a a a + a a a a a + . . . . . . a+aa+aaa+aaaa+aaaaa+...... a+aa+aaa+aaaa+aaaaa+......

例如: 2 + 22 + 222 + 2222 + 22222 2+22+222+2222+22222 2+22+222+2222+22222,其中a为2,且有5组数字

输入输出描述

输入两个数据分别为数字a和组数n

输出按照堆叠相加模式算出的和

示例

输入:

3 4

输出:

3702

解释:

3 + 33 + 333 + 3333 = 3702

代码:

print("输入")
a , n = input().split()
sum = 0
for i in range(1 , int(n) + 1) :
    sum  = sum + int(a * i)
print("输出")
print(sum)


Demo48 十进制转二进制

题目描述

输入一个十进制正整数,输出其二进制形式

输入输出描述

输入一个十进制正整数

输出二进制字符串

示例

输入:

9

输出:

1001

代码:

print("输入:")
while True :
    num = int(input())
    if num % 1 == 0 :
        break
temp = []
while num > 0 :
    temp.append(num % 2)
    num //= 2 
temp.reverse()
for i in temp :
    print(i , end=" ")

Demo49 二进制转十进制

题目描述

输入一个二进制字符串,输出其对应的十进制数字

输入输出描述

输入一个二进制字符串

输出十进制数字

示例

输入:

1001

输出:

9

代码:

print("输入:")
temp = list(input())
sum = 0
num = len(temp)
for i in temp :
    if i == "a" :
        sum += 10 * (16 ** (num - 1)) 
    elif i == "b" :
        sum += 11 * (16 ** (num - 1)) 
    elif i == "c" :
        sum += 12 * (16 ** (num - 1)) 
    elif i == "d" :
        sum += 13 * (16 ** (num - 1)) 
    elif i == "e" :
        sum += 14 * (16 ** (num - 1)) 
    elif i == "f" :
        sum += 15 * (16 ** (num - 1)) 
    else :
        sum += int(i) * (16 ** (num - 1)) 
    num -= 1
print("输出:")    
print(sum)

Demo50 十进制转十六进制

题目描述

输入一个十进制正整数,输出其十六进制形式

输入输出描述

输入一个十进制正整数

输出十六进制字符串

示例

输入:

1233321

输出:

1e1b9

代码:

print("输入:")
temp = list(input())
sum = 0
num = len(temp)
for i in temp :
    if i == "a" :
        sum += 10 * (16 ** (num - 1)) 
    elif i == "b" :
        sum += 11 * (16 ** (num - 1)) 
    elif i == "c" :
        sum += 12 * (16 ** (num - 1)) 
    elif i == "d" :
        sum += 13 * (16 ** (num - 1)) 
    elif i == "e" :
        sum += 14 * (16 ** (num - 1)) 
    elif i == "f" :
        sum += 15 * (16 ** (num - 1)) 
    else :
        sum += int(i) * (16 ** (num - 1))
    num -= 1
print("输出:")
print(sum)

Demo52 最长公共前缀

题目描述

给定两个字符串 s1 和 s2 ,求两个字符串最长的公共前缀串,字符区分大小写

输入输出描述

输入两行,分别表示s1和s2

输出前缀串

示例

输入:

abcdefg

abcdhko

输出:

abcd

代码:

print("输入:")
array_1 = list(input())
array_2 = list(input())
temp = []
i = 0
while i < len(array_1)  :
    if array_1[i] == array_2[i] :
        temp.append(array_1[i])
        i += 1
    else :
        break
 print("输出:")
for i in temp :
    print(i , end="")

Demo53 子串出现的次数

题目描述

给定两个字符串 s1 和 s2 ,求 s2 在 s1 中出现的次数,字符区分大小写,已匹配的字符不计入下一次匹配

输入输出描述

输入两行字符串,分别为s1和s2,s2的长度小于等于s1

输出s2在s1中出现的次数

示例1

输入:

ABCsdABsadABCasdhjabcsaABCasd

ABC

输出:

3

代码:

print("输入:")
while True :
    s1 = (input())
    s2 = (input())
    if len(s1) > len(s2) :
        break
count = s1.count(s2)
print("输出:")
print(count)

Demo55 检测密码

题目描述

一些网站会给密码强加一些规则:

(1)密码必须至少有8个字符

(2)密码只能包含英文字母和数字

(3)密码应该至少包含两个数字

(4)密码应该至少包含两个大写字母

如果密码符合规则,输出Yes;否则输出No

输入输出描述

输入一串密码

输出该密码是否符合规则

示例1

输入:

123456ab

输出:

No

代码:

print("'输入:")
password = input()
num1 = 0
num2 = 0
for i in password :
    if i.isdecimal() :
        num1 += 1
    elif i.isupper :
        num2 += 1
print("输出:")
if len(password) < 8 :
    print("No")
elif password.isalnum() == False :
    print("No")
elif num1 < 2 :
    print("No")
elif num2 < 2 :
    print("No")
else :
    print("Yes")

Demo56 回文素数

题目描述

回文素数是指一个数既是素数又是回文数,例如131既是素数也是回文数

输出显示前100个回文素数,每行显示10个

代码:

#函数检测素数
def is_sushu(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:
            return False
    return True
 
 #函数检测回文数
def is_huiwenshu(num):
    if str(num) == str(num)[::-1]:
        return True
 
#count统计回文数个数
count = 0
#定义用来循环每一个数的数,从2开始
num = 2
while count < 100:
    if is_sushu(num) and is_huiwenshu(num):
        print("%5d"%num, end=" ")
        count += 1
        #每10个换行
        if count % 10 == 0:
            print()
    num += 1

Demo57 反素数

题目描述

反素数是指一个将其逆向拼写后也是一个素数的非回文数,例如17和71都是素数但不是回文数,且反转后依旧是素数

输出显示前100个反素数,每行显示10个
代码:

#函数检测素数
def is_sushu(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:     
            return False
    return True
 
#反转列表并生成数字
def fanzhuan(num) :
    #拆分并生成列表
    temp = [int(i) for i in str(num)]
    #利用切片反转列表
    temp = temp[::-1]
    #整合列表中的数成为新的整数
    temp = [str(i) for i in temp]
    temp = int("".join(temp))
    return temp
 
#count统计反素数个数
count = 0
#定义用来循环每一个数的数,从2开始
num = 2
#输出
while num < 1000:
    if is_sushu(num) and is_sushu(fanzhuan(num)):
        print("%5d"%num, end=" ")
        count += 1
        #每10个换行
        if count % 10 == 0:
            print()
    num += 1

Demo58 双素数

题目描述

双素数是指一对差值为2的素数,例如3和5就是一对双素数,5和7也是一对双素数

输出显示小于1000的双素数
代码:

#函数检测素数
def is_sushu(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:     
            return False
    return True
 
#定义用来循环每一个数的数,从2开始
num = 2
 
while num < 1000 :
    if is_sushu(num) and is_sushu(num + 2) :
        print(f"{num}和{num + 2}是一对双素数")
    num += 1

Demo59 梅森素数

如果一个素数可以写成 2 p − 1 2^p-1 2p1的形式,其中p是某个正整数,那么这个素数就称作梅森素数

输出p≤31的所有梅森素数
代码:

#函数检测素数
def is_sushu(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:     
            return False
    return True
 
# 定于数循环
num = 2
 
#梅森数,是指形如2p-1的一类数,其中指数p是素数,常记为Mp。如果梅森数是素数,就称为梅森素数。
while num <= 31 :
    temp = 2 ** num - 1
    if is_sushu(temp) :
        print(f"{temp}是一个梅森素数")
    num += 1

不死兔子

代码:

def rabbit(num) :
    if num == 1 or num == 2 or num == 3 or num == 4 :
        return 1
    else :
        return rabbit(num - 1) + rabbit(num - 4)
num = int(input("请输入时间(几个月):"))
print(rabbit(num))

输入字符串,判断该字符串是否是回文字符串

代码:

array = (input("请输入一个字符串:"))
array = [str(i) for i in array]
print(f"原列表:{array}")
temp = array[: : -1]
print(f"翻转后:{temp}")
if array == temp :
    print("该字符串是一个回文字符串")
else :
    print("该字符串不是一个回文字符串")

给定一个正整数N,找出1到N(含)之间所有质数的总和

代码:

#函数检测素数
def is_sushu(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:
            return False
    return True
 
#初始化数据
N = int(input("请输入一个数:"))
temp = 0
#循环求和
for i in range(1 , N + 1) :
    if is_sushu(i) :
        temp += i
#输出
print(temp)

求 a+aa+aaa+…+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定

代码:

#初始化数据,分别是数,项数,容纳数的数组,各项和
while True :
    a = int(input("请输入一个数(1~9):"))
    if a <= 9 or a >= 1 :
        break
    else :
        print("输入错误,请重新输入")
temp = int(input("请输入想要计算的项数:"))
array = []
num = 0
#循环求和,每循环一次项加一位数
for i in range(temp) :
    array.append(a)
    #转换位字符类型才能进行拼接操作
    array = [str(i) for i in array]
    num += int(''.join(array))
print(num)

合并两个有序数组,合并后还是有序列表

代码:

#初始化数组
array1 = input("请输入第一个数组:")
array2 = input("请输入第二个数组:")
#转换数组内每一个数据的类型为整型
array1 = [int(i) for i in array1]
array2 = [int(j) for j in array2]
#合并
for i in array2 :
    array1.append(i)
#插入排序
for i in range(len(array1) - 1) :
    for j in range(len(array1) - 1 , 0 , -1) :
        if array1[j] < array1[j - 1] :
            array1[j] , array1[j - 1] = array1[j - 1] , array1[j]
print(array1)

给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前。

代码:

#初始化数组并转换
A = input("请输入一个数组:")
A = [int(i) for i in A]
#插入排序
for i in range(len(A) - 1) :
    for j in range(len(A) - 1 , 0 , -1) :
        if A[j] < A[j - 1] :
            A[j] , A[j - 1] = A[j - 1] , A[j]
#初始化两个数组容纳奇数和偶数
temp_o = []
temp_j = []
#将奇数和偶数分离
for i in A :
    if i % 2 ==0 :
        temp_o.append(i)
    else :
        temp_j.append(i)
#将A数组清空
A = []
#奇数和偶数分开赋给A
for i in temp_o :
    A.append(i)
for j in temp_j :
    A.append(j)
print(A)

给定一个非负整数数组A,该数组的元素都是从1~N的元素组成,现在发现其中确实一个,请找出这个确实的元素。

代码:

#初始化数组并排序
A = input("请输入一个数组:")
A = [int(i) for i in A]
for i in range(len(A) - 1) :
    for j in range(len(A) - 1 , 0 , -1) :
        if A[j] < A[j - 1] :
            A[j] , A[j - 1] = A[j - 1] , A[j]
 
#函数二分法查找
def foud(A , left , right , aim) :
    if left > right:
        return -1
    middle = (left + right) // 2
    if A[middle] > aim:
        return foud(A, left, middle - 1, aim)
    elif A[middle] < aim:
        return foud(A, middle + 1, right, aim)
    else:
        return middle
    
aim = int(input("请输入目标数:"))
print(f"数组为:{A}")
print(f"该数在数组的第{foud(A , 0 , len(A) , aim) + 1}个")

小明有一堆苹果,他每天吃掉这堆的一半加一个,等第六天,小明剩余1个苹果,问,这堆苹果共多少个?

代码:

i = 1
num = 1
while i < 6 :
    num = (num + 1) * 2
    i += 1
print(num)

英雄购买案列

while True:
        print("\t\t\t英雄商城登录界面\n")
        print("~*" * 38)
        print("\t\t\t1.用户登录\n")
        print("\t\t\t2.用户注册\n")
        print("\t\t\t3.退出系统\n")
        print("~*" * 38)

        choice = input("请输入您的选择:")

        if choice == "1":  # 用户需要登录
                username = input("请输入您的用户名称:")
                password = input("请输入您的用户密码:")
                if username == "admin" and password == "888888":
                        print("登录成功......\n")
                        while True:
                                print("\t\t\t英雄商城首页\n")
                                print("~*" * 40)
                                print("\t\t\t1.进入英雄超市\n")
                                print("\t\t\t2.休闲小游戏\n")
                                print("\t\t\t3.退出系统\n")
                                print("~*" * 40)
                                choice = input("请输入您的选择:")

                                if choice == "1":
                                        print("英雄联盟新款皮肤折扣3.8折,需要支付28元人民币\n")
                                        a = int(input("请输入购买数量:"))
                                        b = 28 * a
                                        print("你购买的皮肤,所需金额为%s" % b)
                                        c = int(input("请支付商品需要的金额:"))
                                        if b == c:
                                                print("  ")
                                                print("       支付成功")
                                                print("  ")
                                                print("正在打印购买小票,请稍后......")

                                        else:
                                                print("  ")
                                                print("支付金额错误,请重新支付")
                                elif choice == "2":
                                        print("各种休闲小游戏")
                                else:
                                        break

                else:
                        input("用户名或密码错误,请重新登录,按任意键继续:")


        elif choice == "2":  # 用户需要注册
                phone = input("请您输入要注册的手机号码:")
                a = len(phone)
                if a == 11:
                        b = input("请输入短信验证码:")
                        c = len(b)  # 判断验证码长度是否正确
                        if c == 6:
                                password_1 = str(input("请输入密码:"))
                                password_2 = str(input("请再次输入密码:"))
                                d = len(password_1)
                                if password_1 == password_2 and d >= 8:  # 判断两次设置的密码是否一样
                                        # 并且判断密码长度是否安全
                                        print("注册成功,请重新登录。")
                                else:
                                        print("两次密码输入不一致或设置密码过短,请重新注册\n")

                        else:
                                print("输入的短信验证码有误,请您重新验证")
                else:
                        print("该手机号已注册或您输入的手机号有误,请重新输入:")

                pass
        elif choice == "3":  # 用户需要退出系 统TURE
                break
print("game 0ver~~~")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值