python100天之day10

相关列表与字典习题

1.判断季节

# 接收用户输入的月份
month = int(input('month:'))

# 定义列表
spring = [3,4,5]
summer = [6,7,8]
autumn = [9,10,11]
winter = [12,1,2]

# 判断输入的月份属于哪个季节
# 列表的特性:成员操作符
if month in spring:
    print('%s月是春天' %(month))
elif month in summer:
    print('%s月是夏天' %(month))
elif month in autumn:
    print('%s月是秋天' %(month))
elif month in winter:
    print('%s月是冬天' % (month))
else:
    print('请输入正确的月份')

2.按要求重组列表元素

  • 假定有下面的列表:
    names = [‘fentiao’,‘fendai’,‘fensi’,‘apple’]
    输出结果为:‘I have fentiao, fendai, fensi and apple.’
# 定义列表
names = ['fentiao','fendai','fensi','apple']

# + 和 join 都表示连接,(join可以指定分隔符连接);
# 列表的索引和切片都相当于分离
print('I have ' + ','.join(names[:3]) + ' and ' + (names[3]))

3.编写小学生算术能力测试系统

  • 设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以下功能:
    • 提供10道加、减、乘或除四种基本算术运算的题目;
    • 练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否
    • 正确并显示出相应的信息。
import random
# 定义用来记录总的答题数目和回答正确的数目
count = 0
right = 0
# 因为题目要求:提供10道题目(因为题目要求:提供10道题目)
while count <= 10:
    # 创建列表,用来记录加减乘除四大运算符
    op = ['+', '-', '*', '/']
    # 随机生成op列表中的字符
    s = random.choice(op)
    # 随机生成0-100以内的数字
    a = random.randint(0,100)
    # 除数不能为0
    b = random.randint(1,100)
    print('%d %s %d = ' %(a,s,b))
    # 默认输入的为字符串类型
    question = input('请输入您的答案:(q退出)')
    # 判断随机生成的运算符,并计算正确结果
    if s == '+':
        result = a + b
    elif s == '-':
        result = a - b
    elif s == '*':
        result = a * b
    else:
        result = a / b
    #  判断用户输入的结果是否正确,str表示强制转换为字符串类型
    if question == str(result):
        print('回答正确')
        right += 1
        count += 1
    elif question == 'q':
         break
    else:
        print('回答错误')
        count+=1
# 计算正确率
if count == 0:
    percent = 0
else:
    percent = right / count
print('测试结束,共回答%d道题,回答正确个数为%d,正确率为%.2f%%' %(count,right,percent*100))

4.编写用户登陆系统

  • 1.系统里面有多个用户,用户的信息目前保存在列表里面
    users = [‘root’,‘westos’]
    passwd = [‘123’,‘456’]
  • 2.用户登陆(判断用户登陆是否成功)
    1).判断用户是否存在
    2).如果存在
    1).判断用户密码是否正确
    如果正确,登陆成功,推出循环
    如果密码不正确,重新登陆,总共有三次机会登陆
    3).如果用户不存在
    重新登陆,总共有三次机会
# 定义列表,用来记录用户名和密码
users = ['root','westos']
passwds = ['123','456']
# 定义尝试登陆的次数
trycount = 0

# 判断尝试登陆次数是否超过3次
while trycount < 3:
    # 接收用户输入的用户名和密码
    inuser = input("用户名:")
    inpasswd = input("密码:")

    trycount+=1
    # 判断用户是否存在
    if inuser in users:
        # 先找出用户对应的索引值
        index = users.index(inuser)
        # 找出密码列表中对应的索引值的密码
        passwd = passwds[index]
        # 判断输入的密码是否正确
        if inpasswd == passwd:
            print("%s登陆成功" % (inuser))
            break
        else:
            print("%s登陆失败: 密码错误!" % (inuser))
    else:
        print("用户%s不存在" % (inuser))
else:
    print("已经超过三次机会")

5.后台管理员管理前台会员信息系统

  • 后台管理员管理前台会员信息系统:
  1. 后台管理员只有一个用户: admin, 密码: admin
  2. 当管理员登陆成功后, 可以管理前台会员信息.
  3. 会员信息管理包含:
    添加会员信息
    删除会员信息
    查看会员信息
    退出
  • 添加用户:
    1). 判断用户是否存在?
    2). 如果存在, 报错;
    3). 如果不存在,添加用户名和密码分别到列表中;

  • 删除用户
    1). 判断用户名是否存在
    2). 如果存在,删除;
    3). 如果不存在, 报错;

print('管理员登陆界面'.center(50,'*'))

# 初始会员信息
users = ['westos','linux']
passwds = ['123','234']

# 接收用户输入的用户名和密码
inuser = input("用户名:")
inpasswd = input("密码:")

if inuser == 'admin':
    if inpasswd == 'admin':
        print("管理员%s登陆成功" % (inuser))
        while True:
            print("""
            **********操作目录**********
            1.添加会员信息
            2.删除会员信息
            3.查看会员信息
            4.退出
            """)
            option = input('请输入你想执行的操作:')
            if option == '1':
                print('添加会员信息'.center(50,'*'))
                adduser = input('用户名:')
                addpasswd = input('密码:')
                if adduser in users:
                    print('添加失败,该会员信息已经存在!')
                else:
                    users.append(adduser)
                    passwds.append(addpasswd)
                    print('添加信息成功!')
            elif option == '2':
                print('删除会员信息'.center(50,'*'))
                deluser = input('用户名:')
                if deluser not in users:
                    print('删除失败,该会员信息不存在!')
                else:
                    # 找出想删除的用户对应的索引值
                    delindex = users.index(deluser)
                    # 删除用户,remove表示删除列表中的元素
                    users.remove(deluser)
                    # 按照索引值删除密码,pop也表示删除列表中的元素,区别在于,它可以按索引值来删除
                    passwds.pop(delindex)
                    print('删除信息成功!')
            elif option == '3':
                print('查看会员信息'.center(50,'*'))
                # 记录users列表的长度(即列表中元素的个数)
                count = len(users)
                for i in range(0,count):
                    print('用户名: %s   密码: %s' %(users[i],passwds[i]))
            elif option == '4':
                exit()
            else:
                print('请输入正确的操作指令')
    else:
        print("%s登陆失败: 密码错误!" % (inuser))
else:
    print("用户%s不存在" % (inuser))

6.输出商品列表,用户输入序号,显示用户选中的商品。

  • 商品li=[“手机”, “电脑”, “鼠标垫”, “游艇” ]
  • a. 允许用户添加商品
  • b. 用户输入序号显示内容
goods = ["手机", "电脑", "鼠标垫", "游艇" ]
add_good = input("请输入您想加入的商品:")
goods.append(add_good)
print("商品现有",goods)
num = int(input("请输入序号:"))
print(goods[num])

7.有两个列表

  • l1 = [11, 22, 33]
  • l2 = [22, 33, 44]
  • a.获取内容相同的元素列表
l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i1 in l1:
    for i2 in l2:
        if i1 == i2:
            print(i1)
  • b.获取l1中有,l2中没有的元素列表
l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i1 in l1:
    if i1 not in l2:
        print(i1)
  • c. 获取l1 和 l2 中内容都不同的元素
l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i2 in l2:
    if i2 not in l1:
        print(i2)
for i1 in l1:
    if i1 not in l2:
        print(i1)

8. for循环从大到小输出1-100

for i in range(100, 0, -1):
    print(i, end = " ")

9.元素分类

  • 有如下值集合[0,11,22,33,44,55,66,77,88,99,100], 将所有大于66的值保存至字典的第一个key中,将小于66值保存至第二个key的值中。
li = [0,11,22,33,44,55,66,77,88,99,100]
dic = {}
n = []
m = []
for i in li:
    if i > 66:
        n.append(i)
    if i < 66:
        m.append(i)
dic.update(k1 = m, k2 = n)
print(dic)

10.购物车

  • 功能要求:
    要求用户输入总资产,例如:2000
    显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示余额不足,否则,购买成功。
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 40},
    {"name": "游艇", "price": 20000},
]
ass = int(input("请输入你的总资产:"))
dic = {}
num =1
for good in goods:
    name = good["name"]
    dic.update({num : name})
    num +=1
print(dic)
money = 0
while True:
    want = int(input("请输入你想要的商品序号(按数字0结束)"))
    if want == 0:
        break
    if want > 4:
        print("请重新输入")
        continue
    v = dic.get(want)
    print("你想要购买的是:", v)
    price_list = [0,1999, 40, 20000]
    print("它的价格为:%d"%price_list[want])
    p = int(price_list[want])
    money = money + p
print('您需要支付money元',money)
 
if money > ass:
    print("余额不足请充值")
else:
    print("购买成功!")

##越努力越幸运!!!
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值