python作业

英雄联盟注册

import sys 

users_data = {}  

def new_user_data():

  print("请输入您的账号:")

  while True:

    user_id = str(input())

    if len(user_id) < 3:

      print("账号过短,请重新输入")

      continue

    # 有问题

    for keys in users_data.keys() :

      if user_id == keys: 

        print("账号已存在,请重新输入账号:")

        break

    else:

      break

  print("请输入您的密码:")

  while True:

    user_passwd = str(input())

    if len(user_passwd) < 3:

      print("密码过短,请重新输入:")

      continue

    else:

      print("请确认密码:")

      user_passwd_chacked = str(input())

      if user_passwd_chacked != user_passwd:

        print("两次密码不一致,请重新输入:")

        continue

      else:

        users_data[user_id] = user_passwd

        print("注册成功")

        break

  return users_data

def user_login():

  """

  用户登录

  user_id 用户账号

  user_passwd 用户密码

  """

  print("请输入你的账号:")

  while True:

    user_id = str(input())

    flog = False

    for key in users_data.keys():

      if user_id == key:

        flog = True

        break

    if flog :

      break

    else:

      print("账号不存在,请重新输入:")

  print("请输入您的密码:")

  while True:

    user_passwd = str(input())

    if user_passwd == users_data[user_id]:

      return ""

    else:

      print("密码输入有误,请重新输入:")

      continue

       

while True:

  

#英雄商城登录界面 

  print("\t英雄商城登录界面\n")

  print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

  print("\t1. 用户登录\n")

  print("\t2. 新用户注册\n")

  print("\t3. 退出系统\n")

  print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

  print("(温馨提示)请输入您的选项:")

  login_num = int(input())

  if login_num == 1 :

    user_login()

    while True:

    #英雄联盟商城首页

      print("\t英雄联盟商城首页\n")

      print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

      print("\t1. 进入英雄超市\n")

      print("\t2. 休闲小游戏\n")

      print("\t3. 退出登录\n")

      print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

      print("(温馨提示)请输入您的选项:")

      home_num = int(input())

      if home_num == 1:

        while True:

          print("\t英雄商城英雄列表\n")

          print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

          print("编号 姓名 昵称 价格 库存 描述\n")

          print("1 纳尔 迷失之牙 3500 100 丛林不会原谅盲目与无知\n")

          print("2 锐雯 放逐之刃 4000 100 她是残忍高效的战士\n")

          print("3 薇恩 暗夜猎手 3500 100 这个世界不想人们想象的那么美好\n")

          print("4 扎克 生化魔人 3000 100 即使你没有脊柱,你也必须站起来\n")

          print("5 杰斯 未来守护者 2500 100 武装着睿智与魅力,你的选择没有错\n")

          print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

          print("(温馨提示)请输入您要购买的英雄编号:")

          

          buy_num = int(input())

          if buy_num ==1 :

            #英雄商城购买英雄

        

            print("\t英雄商城购买英雄\n")

            print("英雄购买票据")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n\n")

            print("英雄名称:纳尔\n")

            print("英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)\n")

            print("攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125\n\n")

            print("英雄座右铭:一人之行可灭世,众人之勤可救世!\n")

            print("英雄价格:3000\n")

            print("活动折扣:9.5\n\n")

            print("插播广告:当风云变色,当流离失所,世界不再是旧日模样")

            print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

            print("(温馨提示)请付款:")

          if buy_num == 2:

  

        #英雄商城购买英雄

        

            print("\t英雄商城购买英雄\n")

            print("英雄购买票据")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n\n")

            print("英雄名称:锐雯(史诗)\n")

            print("英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)\n")

            print("攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125\n\n")

            print("英雄座右铭:一人之行可灭世,众人之勤可救世!\n")

            print("英雄价格:3000\n")

            print("活动折扣:9.5\n\n")

            print("插播广告:当风云变色,当流离失所,世界不再是旧日模样")

            print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

            print("(温馨提示)请付款:")

          if buy_num == 3 :

        #英雄商城购买英雄

            print("\t英雄商城购买英雄\n")

            print("英雄购买票据")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n\n")

            print("\t英雄名称: 薇恩(史诗)\n")

            print("\t英雄价格:10000\n")

            print("\t活动折扣:9.5\n\n")

            print("\t应付付款:9500\n")

            print("\t实际付款:10000\n")

            print("\t找零:500\n\n")

            print("插入广告:当风云变色,当流离失所,世界不再是旧日模样")

            print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡 ")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

            print("(温馨提示)按任意键返回上一级菜单:")

          if buy_num == 4:

            #英雄商城购买英雄

            print("\t英雄商城购买英雄\n")

            print("英雄购买票据")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n\n")

            print("\t英雄名称: 扎克 (史诗)\n")

            print("\t英雄价格:10000\n")

            print("\t活动折扣:9.5\n\n")

            print("\t应付付款:9500\n")

            print("\t实际付款:10000\n")

            print("\t找零:500\n\n")

            print("插入广告:当风云变色,当流离失所,世界不再是旧日模样")

            print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡 ")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

            print("(温馨提示)按任意键返回上一级菜单:")

          if buy_num == 5:

                 #英雄商城购买英雄

            print("\t英雄商城购买英雄\n")

            print("英雄购买票据")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n\n")

            print("\t英雄名称: 杰斯 (史诗)\n")

            print("\t英雄价格:10000\n")

            print("\t活动折扣:9.5\n\n")

            print("\t应付付款:9500\n")

            print("\t实际付款:10000\n")

            print("\t找零:500\n\n")

            print("插入广告:当风云变色,当流离失所,世界不再是旧日模样")

            print("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡 ")

            print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~\n")

            print("(温馨提示)按任意键返回上一级菜单:")

      if home_num == 2:

        print("这里是休闲小游戏")

        #TODO

      if home_num == 3:

        break

  if login_num == 2:

    new_user_data()

  

  

  if login_num == 3:

    sys.exit(0)

  else:

    print("参数输入有误,请重新输入:")

    

兔子繁殖

def busituzi(n : int) -> int:

    if n <= 4:

        return 1

    return busituzi(n-1) + busituzi(n-4)

print(busituzi(20))

判断回文

a = input("请输入一个字符串")

if a[0:] == a[::-1]:

    print("yes")

else:

    print("no")

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

def sushu(n:int) -> int:

    if n == 1:

        return 0

    for i in range(2,n // 2 + 1):

        if n % i == 0:

            return 0

    return 1

    

n = int(input("请输入N:"))

sum = 0

for i in range(n + 1):

    if sushu(i):

        sum += i

print(sum)

求  a+aa+aaa+.......+aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定。

def ahe(a:int,b:int) -> int:

    temp = ''

    he = 0

    for i in range(b):

        temp = temp + '1'

        he += a * int(temp)

    return he

a = int(input("请输入a的值:"))

b = int(input("请输入要循环的项数:"))

print(f"所得和为:{ahe(a,b)}")

def hebing(a:list,b:list) -> list:

    for i in b:

        a.append(i)

    for j in range(len(a) - 1):

        for k in range(len(a) - 1 - j):

            if a[k] > a[k + 1]:

                a[k], a[k + 1] = a[k + 1], a[k]

    return(a)

a=[1,2,3,4]

b=[2,3,4,5]

print(f"{a},{b}合并后的有序数列为{hebing(a,b)}")

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

def oqian(a:list) -> list:

    for i in range(len(a) - 1):

        for j in range(len(a) - 1 - i):

            if a[j + 1] & 1 == 0 and a[j] & 1 == 1:

                a[j], a[j + 1] = a[j + 1], a[j]

    return a

a=[1,2,3,4,5,6]

print(f"排序后的数列a = {oqian(a)}")

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

def zhao(a:list,n:int) -> list:

    b = []

    for j in range(1,n + 1):

        if a.count(j) == 0:

            b.append(j)

        

    return b

a = [1,2,3,4,6,7,8]

print(f"数组a = {a}")

print(f"缺失的元素 = {zhao(a,9)}")

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

def apple(n : int) -> int:

    if n == 1:

        return 1

    return 2*apple(n-1) + 2

print(apple(6))

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

c = float(input("请输入摄氏温度:"))

print("对应的华氏温度为%.2f"%(9*c/5+32))

输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。

r = float(input("请输入圆柱体的半径:"))

h = float(input("请输入圆柱体的高:"))

s = 3.14 * r *r

print("圆柱体的底面积为:%.2f,圆柱体的体积为:%.2f"%(s,s*h))

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

y = float(input("请输入英尺数:"))

print("%.2F英尺 = %.2f米"%(y,0.305*y))

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

j = float(input("请输入小计总额:"))

l = float(input("请输入酬金率:"))

x = j * l

print("小费为:%.2f"%x)

print("合计金额:%.2f"%(x + j))

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

num = int(input("请输入一个0~1000之间的整数:"))

if 0 < num < 1000:

    a = num % 10

    b = (num - a) // 10 % 10

    c = (num - a - b * 10) // 100

sum = a + b + c 

print(sum)

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

min = int(input("请输入分钟数:"))

day = int(min / 60 / 24)

year = int(min / 60 / 24 // 365)

print(year, (day - year * 365))

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

m = float(input("请输入水量:"))

s = float(input("请输入水初始温度:"))

d = float(input("请输入水最终温度:"))

print("所需的能量值:%.2f"%(m*(d - s)*4184))

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

num = int(input("请输入一个四位整数:"))

while num > 0:

    s = num % 10

    num //= 10

    print(s)

输入三角形的三个顶点坐标,并计算其面积,计算公式如下

当三个点A、B、C的坐标分别为A(x1,y1)、B(x2,y2)、C(x3、y3)时,三角形面积为,

S=(x1y2-x1y3+x2y3-x2y1+x3y1-x2y2)

Ax,Ay = map(float,(input("请输入A的横纵坐标:").split()))

Bx,By = map(float,(input("请输入B的横纵坐标:").split()))

Cx,Cy = map(float,(input("请输入C的横纵坐标:").split()))

S = (Ax*By - Ax*Cy + Bx*Cy - Bx*Ay + Cx*Ay - Bx*By )

print("面积S = %.2f"%S)

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

从datetime模块导入datetime类和timedelta类(表示时间间隔)

from datetime import datetime,timedelta

place = int(input("请输入时区:"))

获取当前时间

now = datetime.now()

将时间格式化为字符串

time_8= now.strftime("%H:%M:%S")

if place == 8:

  print(time_8)

elif place == -5:

  修改时间(将小时加11)

  modified_time = now +timedelta(hours=11) 

  time_5= modified_time.strftime("%H:%M:%S")

  print(time_5)

else:

  print("输入有误重新输入")

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

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

money = float(input("请输入总金额:"))

a = money // 1

b = (money - a) // 0.25

c = (money - a - (b*0.25))// 0.1

d = (money - a - (b*0.25) - (c*0.1))// 0.05

e = (money - a - (b*0.25) - (c*0.1) - (d*0.05))//0.01

print("%.0f个一元硬币" %a)

print("%.0f个两角五分硬币" %b)

print("%.0f个一角硬币" %c)

print("%.0f个五分硬币" %d)

print("%.0f个一分硬币" %e)

正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:

import math

n , s = map(float,input("输入:\n").split())

area = (n * s * s) / (4 * math.tan(math.pi/n))

print("%.2f"%area)

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

sg = float(input("请输入身高(m):"))

tz = float(input("请输入体重(kg):"))

BMI = tz / (sg*sg)

if BMI < 18.5:

    print("过轻")

elif 18.5 <= BMI < 24:

    print("正常")

elif 24 <= BMI < 27:

    print("过重")

elif 27 <= BMI < 30:

    print("轻度肥胖")

elif 30 <= BMI < 35:

    print("中度肥胖")

elif BMI >= 35:

    print("重度肥胖")

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

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

if year % 4 == 0 & year % 100 != 0 or year % 400 == 0:

    print(f"{year}年是闰年")

else:

    print(f"{year}年是平年")

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

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

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

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

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

import random

input_num = int (input("输入:"))

input_str = str(input_num)

random_num = random.randint(10,99)

random_str = str(random_num)

print(random_num)

if input_num ==random_num:

  print("10000")

elif random_str[0] == input_str[1] and random_str[1] == input_str[0]:

  print("3000")

elif (random_str[0] == input_str[0] or random_str[0] == input_str[1])or(random_str[1] == input_str[0] or random_str[1] == input_str[1]) :

  print("1000")

else:

  print("0")

 解一元二次方程

 ax^2+bx+c=0 

import math

a,b,c = map(float,input("输入:").split())

if a==0:

  print("输入不合法")

elif b**2-4*a*c>0:

# round(number[, ndigits])----四舍五入保留ndigits位小数

 print( round((-b+math.sqrt(b**2-4*a*c))/(2*a),2))

 print( round((-b-math.sqrt(b**2-4*a*c))/(2*a),2))

  

elif b**2-4*a*c==0:

  print(round((-b)/(2*a),2))

  

elif b**2-4*a*c<0:

  print("无实数解")

解2×2线程方程

a,b,c,d,e,f = map(float,input("输入:").split())

# 前提:(ad - bc)不等于0

# x = (ed - bf) / (ad - bc)

# y = (af - ec) / (ad - bc)

if (a*d - b*c) ==0:

  print("无解")

else:

  x = (e*d - b*f) / (a*d - b*c)

  y = (a*f - e*c) / (a*d - b*c)

  print(x,y)

未来是周几
 
week ,future_day = map(int ,input("输入:").split())
day = (week+future_day)%7
if day == 0:
  print("星期天") 
if day == 1:
  print("星期一") 
if day == 2:
  print("星期二") 
if day == 3:
  print("星期三") 
if day == 4:
  print("星期四") 
if day == 5:
  print("星期五") 
if day == 6:
  print("星期六") 

是本年的第几天

year,month,day = map(int,input("输入").split())
定义每月的天数表
month_day =[0,31,28,31,30,31,30,31,31,30,31,30,31]
# 判断闰年,并对二月进行加一操作
if (year %4 ==0 and year%100 ==0) or year%400 == 0:
  month_day[2] += 1 
  
for i in range(0 , month):
  day += month_day[i]
 
print(day)

剪刀石头布
import random
 
 
use_num =int( input("输入:"))
com_num = random.randint(0,2)
# 定义一个方法:将数字和字符转换,
def vo(num):
  if num ==0:
    return " 剪刀"
  elif num == 1:
    return " 石头"
  elif num ==2:
    return " 布"
  else :
    return 0
    
# 对用户输入数据进行判断
if vo(use_num)==0:
  print("输入不合法")
  
else:
  print("计算机输出"+vo(com_num))
  print("用户出的"+vo(use_num))
 
  if com_num==use_num:
    print("平手")
  elif (com_num==1 and use_num==0) or(com_num==0 and use_num==2) or (com_num == 2 and use_num == 1):
    print("计算机赢")
  else:
    print("用户赢")

三角形周长
 
side1,side2,side3 = map(int,input("输入:").split())
if side1+side2>side3 and side1+side3>side2 and side2+side3>side1:
  print(side1+side2+side3)
else:
  print("错误")


 判断一年中某天是星期几
 
# 输入年、月、日三个数据,数据之间用空格分隔
# 输出该日是周几
 
year,month,day = map(int,input("输入:").split())
 
# 一月和二月都是按照前一年的13月和14月来计数的,所以还得把年份改为前一年
if month ==1 or month  == 2:
  year-=1
  month+=12
h =int((day+26*(month+1)//10+year%100+year%100//4+year/100//4+5*year/100)%7)
if h == 0:
  print("星期六")
elif h == 1:
  print("星期天")
elif h == 2:
  print("星期一")
elif h == 3:
  print("星期二")
elif h == 4:
  print("星期三")  
elif h == 5:
  print("星期四")
elif h == 6:
  print("星期五")

判断两个矩形之间的位置关系
 
输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高
输出两者的关系
 
 
x1,y1,winth1,high1 = map(float ,input("输入").split())
x2,y2,winth2,high2 = map(float ,input("输入").split())
level =abs(x1-x2) 
vertical = abs(y1-y2)
if level < (winth1+winth2)/2 and vertical<(high1+high2)/2:
  print("包含")
elif level<abs(winth1-winth2) and vertical<abs(high1-high2):
  print("重叠")
else:
  print("相离")

打印数字
(一)
print("模式A")
layer = 6
for i in range(1,layer+1):
    for j in range(1,i+1):
        print(j,end="")
    print()
print("模式B")
for i in range(layer,0,-1):
    for j in range(1,i+1):
        print(j,end="")
    print()
print("模式C")
for i in range(layer+1):
    print(" "*(layer - i),end=" ")
    for j in range(i,0,-1):
        print(j,end="")
    print()
print("模式D")
for i in range(layer,0,-1):
    print(" "*(layer - i),end=" ")
    for j in range(1,i+1):
        print(j,end="")
    print()
(二)
layer = 7
for i in range(1,layer+1):
    print(" "*(layer - i),end=" ")
    for j in range(i , 0 ,-1):
        print(j ,end="")
    for j in range(2 , i+1):
        print(j ,end="")
    print()
(三)
layer = 7
for i in range(1,layer+1):
    print(" "*2*(layer - i),end=" ")
    for j in range(1 , i+1 ):
        print(2**(j-1) ,end=" ")
    for j in range(i-1 , 0,-1):
        print(2**(j-1),end=" ")
    print()

菱形
(一)
layer = int(input("输入:\n"))
for i in range(layer // 2 + 2):
    print(" "*(layer - i), end="")
    for j in range(i ):
        print("*",end=" ")
    print()
for i in range(layer // 2 , 0 , -1):
    print(" " * (layer - i),end="")
    for j in range(i):
        print("*",end=" ")
    print()
(二)
layer = int(input("输入:\n"))
for i in range(layer // 2 + 2):
    print(" "*(layer - i), end="")
    for j in range(2 * i - 1):
        if j == 0 or j == 2 * i - 2:
            print("*",end="")
        else:
            print(" ",end="")
    print()
for i in range(layer // 2 , 0 , -1):
    print(" " * (layer - i),end="")
    for j in range(2 * i - 1):
        if j == 0 or j == 2 * i - 2:
            print("*",end="")
        else:
            print(" ",end="")
    print()
(三)
layer = int(input("输入:\n"))
for i in range(layer // 2 + 2):
    print(" "*(layer - i), end="")
    for j in range(2 * i - 1):
        print("*",end="")
    print()
for i in range(layer // 2 , 0 , -1):
    print(" " * (layer - i),end="")
    for j in range(2 * i - 1):
        print("*",end="")
    print()

猜数字

import random
 
 
computer = random.randint(0,101)
person = int(input("请猜一个数:"))
 
while computer != person:
    if computer > person:
        print("猜低了")
    elif computer < person:
        print("猜高了")
    else:
        print("恭喜你猜对了!!!")
        break
    person = int(input("请重新猜测:"))
 
print(f"猜中的答案就是{person}")

最大公约数I
num1 = int(input("输入a = "))
num2 = int(input("输入b = "))
 
def gcd(num1, num2):
    if num2 == 0:
        return num1
    else:
        return gcd(num2, num1 % num2)
 
print(gcd(num1,num2))

判断素数
a = int(input("输入:\n"))
def sushu(n:int) -> int:
    flog = 0
    for i in range(2,a):
        if a % i == 0:
            flog = 1
    if flog:
        return 0
    else:
        return 1
 
if sushu(a):
    print("yes")
else:
    print("no")

最小公倍数
def gcd(num1, num2):
    if num2 == 0:
        return num1
    else:
        return gcd(num2, num1 % num2)
 
a = int(input("请输入a = "))
b = int(input("请输入b = "))
 
c = gcd(a, b)
print(f"a, b最小公倍数为:{a*b/c}")

完全数(如果一个正整数等于除了它本身之外所有正因子的和,那么这个数称为完全数)
a = int(input("输入:\n"))
c = 0
for i in range(1,a):
    if a%i == 0:
         c+=i
if c==a:
    print("Yes")
else:
    print("No")

打印前50个素数
def sushu(n:int) -> int:
    flog = 0
    if n == 0:
        return 1
    for i in range(2,n):
        if n % i == 0:
            flog = 1
    if flog:
        return 0
    else:
        return 1
 
for i in range(1,51):
    if sushu(i):
        print(i)

计算π
sum = 0
for i in range(1,100000):
    if i % 2 ==0:
        sum = sum - 1/(2*i-1)
    elif i % 2 != 0:
        sum = sum + 1/(2*i-1)
pi = sum * 4
print(pi)

计算e
e = 0
for i in range(1,100):
    for j in range(1,i+1):
        i *= j
        e = e + 1/i
print(e)

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

s = []
for i in range(1,8):
    for j in range(i+1,8):
        s.append(f"{i},{j}")
print(s)

有1、2、3、4这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?
s = []
num = 0
for i in range(1,5):
    for j in range(i+1,5):
        for l in range(j+1,5):
            num = str(i) + str(j) + str(l)
            s.append(num)
print(s)


青蛙跳台阶:1 1 2 3 5 8 13 …

def qingwa(n : int) -> int:
    if n == 1 or n ==2:
        return n
    return qingwa(n-1) + qingwa(n-2)
print(qingwa(10))

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

a = int(input("请输入一个数:"))
n = int(input("请输入循环次数:"))
sum = 0
for i in range(1,n):
    sum = sum + a*i
print(sum)

最长公共前缀
# 给定两个字符串 s1 和 s2 ,求两个字符串最长的公共前缀串,字符区分大小写
 
 
str1 = str(input("输入"))
str2 = str(input())
 
 
 
def judge_str (str1,str2):
  new_str = ""
  
  for i,j in zip(str1,str2):
# zip() 函数来同时遍历两个字符串。
# 如果两个字符串的长度不相等,zip() 函数将会以较短的字符串为准,忽略超过其长度的部分。
    if i == j :
      new_str += i
    else:
      break
  return new_str
 
 
print(judge_str(str1,str2))

给定两个字符串 s1 和 s2 ,求 s2 在 s1 中出现的次数,
字符区分大小写,已匹配的字符不计入下一次匹配
 
 
str1 = str(input("输入"))
str2 = str(input("输入"))
 
 
def judge_str(str1,str2):
  count = 0
  index_str1 = 0
  while index_str1 <= len(str1)-len(str2) :
      flog = True
      tem = index_str1
      for i in str2:
        if str1[tem] == i:
          tem += 1
        else:
            index_str1 += 1
            flog = False
            break
      if flog:
        count += 1
        index_str1 += len(str2)
      
  return count
 
      
print(judge_str(str1,str2))

 一些网站会给密码强加一些规则:
(1)密码必须至少有8个字符
(2)密码只能包含英文字母和数字
(3)密码应该至少包含两个数字
(4)密码应该至少包含两个大写字母
如果密码符合规则,输出Yes;否则输出No
 
 
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))

回文素数是指一个数既是素数又是回文数,例如131既是素数也是回文数
输出显示前100个回文素数,每行显示10个
 
 
import math
 
 
def find_prime(num):
  if num < 2 :
    return False
  if num == 2 or num == 3:
    return True
  elif num % 2 == 0:
    return False
  elif num % 3 == 0:
    return False
  
  sqrt = int(math.sqrt(num))
  i = 1
  while (6*i-1) < sqrt :
    if num % (6*i-1) == 0 or num % (6*i+1) == 0:
      return False
    i += 1
  else:
      return True
  
 
def find_palindromic(num):
  str_num = str(num)
  i = 0
  j = len(str_num)-1
  while i < j:
    if str_num[i] != str_num[j]:
      return False
    i += 1
    j -= 1
  return True  
 
i = 100
count = 0
while count < 100:
  if find_prime(i) and find_palindromic(i):
    print(str(i) +" ",end="")
    count += 1
    if count % 10 == 0:
      print()
  i += 1

反素数是指一个将其逆向拼写后也是一个素数的非回文数,例如17和71都是素数但不是回文数,且反转后依旧是素数
# 输出显示前100个反素数,每行显示10个
 
 
import math
 
 
# 质数
def is_prime(num):
  if num<2:
    return False
  if num == 2 or num ==3:
    return True
  if num % 2 == 0 or num % 3 == 0:
    return False
  
  sqrt_num =int(math.sqrt(num))
  k = 1
  while (6*k-1)<sqrt_num:
    if num % (6*k-1) == 0 or num % (6*k+1) == 0:
      return False
    k += 1
  return True
 
 
# 回文数
def is_palindromic (num):
  str_num =  str(num)
  i = 0
  j = len(str_num)-1
  while i < j:
    if str_num[i] != str_num[j]:
      return False
    i += 1
    j -= 1
  return True
 
 
 
# 反转
def get_sort_num(num):
  str_num = str(num)
  reversed_str =  str_num[::-1]
  return int(reversed_str)
 
count = 0
i = 17
while count < 100:
  if is_prime(i) and is_prime(get_sort_num(i))  and not is_palindromic(i):
    print (str(i)+" ",end="")
    count += 1
    if count % 10 == 0:
      print()
  i += 1

双素数是指一对差值为2的素数,例如3和5就是一对双素数,5和7也是一对双素数
输出显示小于1000的双素数
 
 
import math
 
def is_prime(num):
  if num<2:
    return False
  if num == 2 or num ==3:
    return True
  if num % 2 == 0 or num % 3 == 0:
    return False
  
  sqrt_num =int(math.sqrt(num))
  k = 1
  while (6*k-1)<sqrt_num:
    if num % (6*k-1) == 0 or num % (6*k+1) == 0:
      return False
    k += 1
  return True
 
 
i = 1
while i+2 < 1000:
  if is_prime(i):
    if is_prime(i+2):
      print(f"[{i},{i+2}] ",end="")
  i += 2
 
如果一个素数可以写成2**p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数
输出p≤31的所有梅森素数
 
 
import math
 
 
def is_prime(num):
  if num<2:
    return False
  if num == 2 or num ==3:
    return True
  if num % 2 == 0 or num % 3 == 0:
    return False
  
  sqrt_num =int(math.sqrt(num))
  k = 1
  while (6*k-1)<sqrt_num:
    if num % (6*k-1) == 0 or num % (6*k+1) == 0:
      return False
    k += 1
  return True
 
 
p = 1
while p < 32:
  if is_prime(2**p-1):
    print(2**p-1)
  p +=1

平方根的近似求法
方法:
nextGuess=(lastGuess+n/lasetGuess)/2
当nextGuess和lastGuess几乎相同,那么nextGuess就是平方根的近似值
 
 
n = eval(input("输入"))
 
 
def get_num(n,last_guess):
 
 nextguess = (last_guess+n/last_guess)/2
 
 if abs(nextguess - last_guess) <0.0001:
    return (nextguess)
  else: 
    return get_num (n,nextguess)
  
 
print(get_num(n,1))
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值