python作业

例1、不死兔子

def get_rabbit(n):
    if n <= 4:
        return 1
    return get_rabbit(n - 1) + get_rabbit(n - 4)


print(get_rabbit(9))

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

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


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

def prime_number(x: int) -> int:
    Sum = 0
    for i in range(x + 1):
        flag = True
        for j in range(2, i):
            if i % j == 0:
                flag = False
                break
        if flag:
            print(i)
            Sum += i
    print(Sum)


num = int(input("请输入一个正整数:"))
prime_number(num)


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

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


a = int(input("请输入一个1到9之间的数a:"))
n = int(input("请输入项数n的值:"))
result = calculate_sequence(a, n)
print(f"{a} + {a}{a} + {a}{a}{a} + ... 的值为:{result}")


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

def combine_list(arr11, arr22, m):
    arr11 = sorted(arr11[:m] + arr22)
    print(arr11)


arr1 = [1, 2, 3, 0, 0, 0]
m = 3
arr2 = [6, 3, 4, 5]
combine_list(arr1, arr2, m)


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

def change(arr):
    for i in range(len(arr) - 1):
        for j in range(len(arr) - 1 - i):  # -i是指减去第一个比较了的数
            if arr[j + 1] % 2 == 0 and arr[j] % 2 != 0:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]


arr1 = [1, 3, 2, 4, 6, 34]
change(arr1)
print(arr1)


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

def find_element(arr):
    total_sum = (len(arr) + 1) * (len(arr) + 2) // 2  # 利用等差数列(n*(1+n)/2)计算1~N+1的和
    actual_sum = sum(A)  # 计算实际arr数组的元素和
    elemnet = total_sum - actual_sum  # 两两相减的差便是缺失的数
    return elemnet


A = [1, 2, 4, 5, 6]
print(f"缺失元素为{find_element(A)}")

例8、英雄购买页面

import sys

users = []  # 用来存储用户信息


# 检测用户名是否为空
def check_info_name_null(name, password):
    if name is None or name == "":
        print("用户名不能为空")
        return False
    return True


# 检测用户名是否存在
def check_user_info(name):
    for u in users:
        if name == u.get("username"):
            return u
    return None


# 检测密码
def check_info_password(password):
    if len(password) < 3:
        print("密码长度不能少于三位")
        return False
    return True


# 注册
def reg():
    while True:
        name = input("请输入用户名:")
        password = input("请输入密码:")
        # 校验用户信息
        if check_info_name_null(name, password):
            if check_info_password(password):
                if check_user_info(name) is None:
                    user = {"username": name, "password": password}
                    users.append(user)
                    print("注册成功")
                    break
        else:
            print("注册失败")


# 检测用户信息是否正确
def check_user_login(name, password):
    user = check_user_info(name)
    if user is None:
        print("用户不存在")
        return False
    else:
        ps = user.get("password")
        if ps == password:
            print("登陆成功")
            return True
        else:
            print("密码错误")
            return False


# 登陆
def login():
    while True:
        name = input("请输入用户名:")
        password = input("请输入密码:")
        # 校验用户信息
        if check_user_login(name, password):
            return True
        else:
            return False


while True:
    print("                  英雄联盟商城登陆界面                  ")
    print("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*")
    print("                     1.用户注册                      ")
    print("                     2.用户登陆                     ")
    print("                     3.退出系统                      ")
    print("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*")
    choice = input("(温馨提示)请输入您的选项:")
    if choice == "1":
        reg()
    elif choice == "2":
        if login():
            print("\t英雄联盟商城英雄列表\n")
            print("~ * " * 13)
            print("\n\t编号 姓名 昵称 价格 库存 描述\n")
            print("\t1 纳尔 迷失之牙 3500 100 丛林不会原谅盲目与无知\n")
            print("\t2 锐雯 放逐之刃 400 100 她是残忍高效的战士\n")
            print("\t3 薇恩 暗夜猎手 3500 100 这个世界不想人们想象的那么美好\n")
            print("\t4 扎克 生化魔人 3000 100 即使你没有脊柱,你也必须站起来\n")
            print("\t5 杰斯 未来守护者 2500 100 武装着睿智和魅力,你的选择没有错\n")
            print("~ * " * 13)
            choice = input("(温馨提示)请输入您要购买的英雄编号:")
            num = int(input("(温馨提示)请输入您要购买的英雄编号:"))
            price = 0
            name = ""
            moto = ""
            last_num = 0
            if choice == "1":
                price = 3500 * num
                name = "纳尔"
                nickname = "迷失之牙"
                moto = "丛林不会原谅盲目与无知"
                last_num = 100 - num
            elif choice == "2":
                price = 400 * num
                name = "锐雯"
                moto = "她是残忍高效的战士"

            print("\n英雄详情\n购买页面\n")
            print("\t英雄商城购买英雄\n")
            print("英雄购买票据\n")
            print("~ * " * 18)
            print("\n\t英雄名称:" + name + "(史诗)\n")
            print(f"\n\t英雄昵称:{nickname}(史诗)\n")
            print("\t英雄属性:生命值428(+85)/能量200(+0)?移动速度425/攻击力55.8(+3.2)\n")
            print("\t英雄座右铭:", moto, "\n")
            print("\t英雄价格:%s\n" % price)
            print("\t活动折扣:9.5\n")
            print("\t库存量:{}".format(last_num))
            print(
                "插播广告:当风云变色,当流离失所,世界不再是旧日模样\n你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡\n")
            print("~ * " * 18)
            print("(温馨提示)请付款\n")
    elif choice == "3":
        # 退出系统
        sys.exit()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值