Python练习题

  1. 使用while循环输入 1 2 3 4 5 6 8 9 10

# 使用while循环输入1 2 3 4 5 6     8 9 10
def while_input():
    count = 0
    while count < 10:
        count += 1
        if count == 7:
            print(' ')
        else:
            print(count)


while_input()

2、求1-100的所有数的和

# 使用循环加100以内相加
def for100():
    sum = 0
    for i in range(0, 101):
        sum += i
        i += 1
    print(sum)
    print(i)


for100()

3、输出 1-100 内的所有奇数

def odd_number():
    y = 0
    while y < 100:
        y += 1
        if y % 2 == 1:
            print(y)


odd_number()

4、输出 1-100 内的所有偶数

def even_number():
    y = 0
    while y < 100:
        y += 1
        if y % 2 == 0:
            print(y)


even_number()

5、求1-2+3-4+5 ... 99的所有数的和

def sum_():
    i =0
    s =0
    while i < 99:
        i += 1
        if i % 2 == 1:
            s += i
        else:
            s -= i
    print("和是:")
    print(s)


sum_()

6、用户登陆(三次机会重试)

def login():
    count = 0
    while count < 3:
        name = input("请输入用户名:")
        if name == "a":
            print("登陆成功!")
            break
        else:
            count += 1
            print("登陆失败!请重新登录")


login()

一、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

def enumerate1():
    num = [11, 22, 33, 44, 55, 66, 77, 88, 99, 9]
    # for k, v in enumerate(li, 1):  # 2是序号开始值  有序号循环
    #     print(k, v)
    k1 = []
    k2 = []
    for i in num:
        if i > 66:
            k1.append(i)
        else:
            k2.append(i)
    k = {'大于66的:': k1, '小于66的有': k2}
    print(k)


enumerate1()

二、查找

查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。

li = ["alec", " aric", "Alex", "Tony", "rain"]

tu = ("alec", " aric", "Alex", "Tony", "rain")

dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}


def check():
    li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain")
    dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
    for i in li:
        a = i.strip()
        if a.startswith("a") or a.startswith("A") or a.endswith("c"):
            print(a)
    for i in tu:
        a = i.strip()
        if a.startswith("a") or a.startswith("A") or a.endswith("c"):
            print(a)
    b = dic.values()
    t = list(b)
    for i in t:
        a = i.strip()
        if a.startswith("a") or a.startswith("A") or a.endswith("c"):
            print(a)


check()

三、输出商品列表,用户输入序号,显示用户选中的商品

商品 li = ["手机", "电脑", '鼠标垫', '游艇']

def shop():
    li = ['手机', "电脑", "鼠标垫", "游艇"]
    for k, v in enumerate(li, 1):
        print(k, v)
    a = int(input("请输入商品编号:"))
    print(li[a-1])


shop()

四、购物车

功能要求:

  • 要求用户输入总资产,例如:2000

  • 显示商品列表,让用户根据序号选择商品,加入购物车

  • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

  • 附加:可充值、某商品移除购物车

goods = [

{"name": "电脑", "price": 1999},

{"name": "鼠标", "price": 10},

{"name": "游艇", "price": 20},

{"name": "美女", "price": 998},

]

def shopping_carts():
    money = int(input("请输入您的总资产:"))
    print("以下是商品列表:")
    sumAccount = 0
    goods = [
        {"name": "电脑", "price": 1999},
        {"name": "鼠标", "price": 10},
        {"name": "游艇", "price": 20},
        {"name": "美女", "price": 998},
    ]
    for el in range(len(goods)):
        print(el + 1, goods[el]["name"], goods[el]["price"])
    while 1:
        cart = input("请选择您需要购买的商品编号,加入购物车,输Q退出购物车").upper()
        if cart == "Q":
            break
        else:
            num = input("请输入所需购买商品份数:")
            print("您将购买:{},购买数量:{}".format(goods[int(cart)-1]["name"], num))
            totalaccount = goods[int(cart)-1]["price"] * int(num)
            sumAccount = sumAccount + totalaccount
    print("购物车总额为:{}".format(sumAccount))
    if sumAccount > money:
        print("账户余额不足!")
    else:
        print("购买成功!剩余金额为:{}".format(money - sumAccount))


shopping_carts()

五、用户交互,显示省市县三级联动的选择

dic = {

"河北": {

"石家庄": ["鹿泉", "藁城", "元氏"],

"邯郸": ["永年", "涉县", "磁县"],

},

"江西": {

"萍乡": ["安源", "彭高", "上栗"],

"新余": ["良山", "新钢", "兴安岭"],

},

"北京": {

"大兴区": ["礼贤镇", "魏善庄镇", "北臧村镇"],

"昌平区": ["沙河", "化庄", "白浮泉"],

},

}

def choose():
    dic = {
        "河北": {
            "石家庄": ["鹿泉", "藁城", "元氏"],
            "邯郸": ["永年", "涉县", "磁县"],
        },
        "江西": {
            "萍乡": ["安源", "彭高", "上栗"],
            "新余": ["良山", "新钢", "兴安岭"],
         },
        "北京": {
            "大兴区": ["礼贤镇", "魏善庄镇", "北臧村镇"],
            "昌平区": ["沙河", "化庄", "白浮泉"],
        },
    }
    p = []
    for i in dic:
        p.append(i)
    print("有以下省份可供查询:{}".format(p))
    while 1:
        province = input("请输入您要查询的省份:")
        if province in p:
            print("{}省可供查询的城市有:".format(province))
            for i in dic[province]:
                print(i)
            city = input("请输入您要查询的城市:")
            if city in dic[province]:
                print("{}市可供查询的乡镇有:".format(city))
                for k in dic[province][city]:
                    print(k)
                town = input("请输入您要查询的县区")
                if town in dic[province][city]:
                    print("查询成功!")
                    break


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值