python第六次作业

一.购买英雄界面

import sys


users = []


def check_name_null(name, password, confirm_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, confirm_password):
      if len(password) < 3:
            print("对不起,密码长度不能小于三位")
            return False
      if password != confirm_password:
            print("对不起,两次密码不一致")
            return False
      return True

def reg():
      while True:
            name = input("请输入用户名称:")
            password = input("请输入用户密码:")
            confirm_password = input("请再次确认用户密码:")
            # TODO 实现真正的注册
            if check_name_null(name, password, confirm_password) and check_info(password, confirm_password):
                        if check_user_info(name) is None:
                              user = {"username":name, "password":password}
                              users.append(user)
                              print("注册成功")
                              break
                        else:
                              print("该用户已存在,请重新注册")
            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("请输入用户密码:")
            # TODO 实现真正的注册
            if check_user_login(name, password):
                  return True
            else:
                  return False
            

while True:
      print("\t英雄联盟商城登录界面\n")
      print("~ *"*13)
      print("\t1.用户登录\n")
      print("\t2.新用户注册\n") 
      print("\t3.退出系统\n")
      print("~ *"*13)
      choice = int(input("(温馨提示)请输入您的选项:"))
        #  TODO (下次要做的)实现真正的注册 
      if   choice== 1:
            # name = input("请输入用户名称:")
            # password = input("请输入用户密码:")
            if login():
                    print("\t英雄联盟商城首页\n")
                    print("~ *"*13)
                    print("\t1.进入英雄联盟首页\n")
                    print("\t2.休闲小游戏\n")
                    print("\t3.退出登录\n")
                    print("~ *"*13)
                    choice = int(input("(温馨提示)请输入您的选项:"))
                    if choice == 1:
                          print("\t英雄商城英雄列表\n")
                          print("~ *"*25)
                          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("~ *"*25)
                          choice = int(input("(温馨提示)请输入您要购买的英雄编号:"))
                          num = int(input("请输入购买数量:"))
                          price = 0
                          name = ""
                          moto = ""
                          last_num = 0
                          nickname = ""
                          if choice == 1:
                                name = "纳尔"
                                price = 3500 * num
                                moto = "丛林不会原谅盲目与无知"
                                last_num = 100 - num
                                nickname = "迷失之牙"
                          elif choice == 2:
                                name = "锐雯"
                                price = 4000 * num
                                moto = "她是残忍高效的战士"
                                last_num = 100 - num
                                nickname = "放逐之刃"
                          elif choice == 3:
                                name = "薇恩"
                                price = 3500 * num
                                moto = "这个世界不想人们想象的那么美好"
                                last_num = 100 - num
                                nickname = "暗夜猎手"
                          elif choice == 4:
                                name = "扎克"
                                price = 3000 *num
                                moto = "即使你没有脊柱,你也必须站起来"
                                last_num = 100 - num
                                nickname = "生化魔人"
                          elif choice == 5:
                                name = "杰斯"
                                price = 2500 * num
                                moto = "武装着睿智与魅力,你的选择没有错"
                                last_num = 100 - num
                                nickname = "未来守护者"
                          print()
                          print()
                          print("\t\t\t英雄商城购买英雄\n")
                          print("英雄购买票据\n")
                          print("~ *"*30)
                          print("\t英雄名称:"+ name +"(史诗)\n")
                          print(f"\t英雄昵称:{nickname}(史诗)\n")
                          print("\t英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)")
                          print("\t          攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125\n")
                          print("\t英雄座右铭:", moto , "\n")
                          print("\t英雄价格:%s\n"%price)
                          print("\t活动折扣:9.5\n")
                          print("\t库存量:{}".format(last_num))
                          print("插播广告:当风云变色,当流离失所,世界不再是旧日模样你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡\n")
                          print("~ *"*30)
                          y_price = int(input("(温馨提示)请付款:"))
                          if y_price == price:
                                print("购买成功!")
                          else:
                                print("支付失误,购买失败!")
                                sys.exit
                    elif choice == 2:
                          print("成功进入小游戏!!!")
                    elif choice == 3:
                          print("已退出登录!!!")
                          sys.exit
                    else:
                          print("错误!!!")
      elif choice == 2:
            reg()
      elif choice == 3:
            sys.exit
            # print('已退出!!!')
      else:
            print("错误!!!")

二、作业

    不死兔子

def rabbit(n: int) -> int:
    if n <= 4:
        return 1
    return rabbit(n - 1)  + rabbit(n - 4)


print(rabbit(10))

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

方法一:
s = input("输入一个字符串:")
b = s[::-1]
if b == s:
    print("是回文")
else:
    print("不是回文")


方法二:
s = input("输入一个字符串:")
b = reversed(list(s))
if list(b) == list(s):
    print("是回文")
else:
    print("不是回文")


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

def zhishu(n: int) -> int:
    for i in range(2, n // 2 + 1):
        if n % i == 0:
            return False
    return True
    

n = int(input("请输入正整数n:"))
num = 0
for j in range(2, n):
    if zhishu(j):
        num += j
print(f"质数总和:{num}")


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

a = int(input("请输入a:"))
n = int(input("请输入n:"))
sum = 0
temp = a
for i in range(1, n + 1):
    sum = sum + a
    a = temp + a * 10
print(sum)


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

def select(ls= []):
    for i in range(len(ls) - 1):
        for j in range(i + 1, len(ls)):
            if ls[j] < ls[i]:
                ls[j], ls[i] = ls[i], ls[j]


ls_1 = [1, 4, 2, 8, 7]
ls_2 = [5, 10, 3, 9, -11]

print(ls_1)
print(ls_2)
ls_1.extend(ls_2)


选择排序法
print(f'合并后的有序列表为:{select(ls_1)}')


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

def befor_odd(nums):
    for i in range(len(nums)):
        if nums[i] % 2 != 0:
            for j in range(i + 1, len(nums)):
                if nums[j] % 2 == 0:
                    nums[i], nums[j] = nums[j], nums[i]
                    break
    return nums
    

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums)


print(f'将偶数置于奇数前,列表变为:{befor_odd(nums)}')


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

    

list = [ 1, 2, 3, 4 ,6]
 
for i in range(0,len(list)):
	if list[i] + 1 != list[i + 1]:
		print(list[i]+1)


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

def apple(time):
    num = 1
    for i in range(time):
        num = (num + 1) * 2
    print(f"苹果有{num}") 


print(apple(6))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值