【python之路10】python实例练习

#!usr/bin/env python
# -*- coding:utf-8 -*-

# 一、元素分类
#
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],
# 将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
li = [11,22,33,44,55,66,77,88,99,100,101]
dic = {'k1':[],'k2':[]}
for i in li:
    if i >=66:
        dic['k1'].append(i)
    else:
        dic['k2'].append(i)
print(dic)
#!usr/bin/env python
# -*- coding:utf-8 -*-

# 二、查找
# 查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
#     li = ["alec", " aric", "Alex", "Tony", "rain"]
#     tu = ("alec", " aric", "Alex", "Tony", "rain")
#     dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
li = ["alec", " aric", "Alex", "Tony", "rain"]
for i in li:
    li_strip = i.strip()
    li_upper = li_strip.upper()
    if li_upper.startswith('A') and li_strip.endswith('c'):
        print(li_strip)

tu = ("alec", " aric", "Alex", "Tony", "rain")
for i in tu:
    tu_strip = i.strip()
    tu_upper = tu_strip.upper()
    if tu_upper.startswith('A') and tu_strip.endswith('c'):
        print(tu_strip)

dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
for key in dic:
    dic[key] = dic[key].strip()
    if dic[key].upper().startswith('A') and dic[key].endswith('c'):
        print(key,dic[key])

  

#!usr/bin/env python
# -*- coding:utf-8 -*-

# 三、输出商品列表,用户输入序号,显示用户选中的商品
#     商品 li = ["手机", "电脑", '鼠标垫', '游艇']
li = ["手机", "电脑", '鼠标垫', '游艇']
for i,j in enumerate(li,1):
    print(i,j)
num = input('请输入您要购买的商品序号:')
if num.isdigit() and int(num) > 0 and int(num) <= len(li):
    li_index = int(num) - 1
    print(li[li_index])
else:
    print("您的商品不存在!")

  

#!usr/bin/env python
# -*- coding:utf-8 -*-

# 四、购物车(第一种方法)
# 功能要求:goods已提供
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# 附加:可充值、某商品移除购物车
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
total = int(input('请输入总资产:'))
for key,value in enumerate(goods):
    print(key+1,value['name'],value['price'])
cart = []
while True:
    buy_strid = input('请输入您要购买的商品序号,按E键确认购买:')
    if buy_strid == 'E':
        break
    buy_id = int(buy_strid)-1
    buy_good = goods[buy_id]
    cart.append(buy_good)
    print('您购物车里面的商品是:')
    buy_total = 0
    for good in cart:
        buy_total += good['price']
        print(good['name'],good['price'])
    print('当前价值为:', buy_total)
while True:
    if total < buy_total:
        result = input('余额不足!按R进行充值,按D减少购物车商品,按其他任意键退出购买:')
        if result == 'R':
            money = input('请输入充值的金额:')
            total = total + int(money)
        elif result == 'D':
            for key,value in enumerate(cart):
                print(key+1,value['name'],value['price'])
            cancel_strid = input('请输入您要取消的商品序号:')
            cancel_id = int(cancel_strid)-1
            cancel_price = cart[cancel_id]['price']
            cart.pop(cancel_id)
            buy_total -= cancel_price
        else:
            break
    else:
        print('购买成功!')
        break
#!usr/bin/env python
# -*- coding:utf-8 -*-

# 四、购物车(第二中方法)
# 功能要求:goods已提供
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# 附加:可充值、某商品移除购物车
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
asset_total = 0
i1 = input('请输入总资产:')
asset_total = int(i1)
for i in goods:
    print(i['name'],i['price'])
cart = {} #目标字典{'电脑':{'price':1999,'num':1}}

while True:
    i2 = input('请输入您加入购物车的商品(y/Y结束):')
    if i2.lower() == 'y':
        break
    for i in goods:
        if i2 in cart:
            num = cart[i2]['num'] + 1
        else:
            num = 1
        if i2 == i['name']:
            cart[i2] = {'price':i['price'],'num':num}
sum_price = 0
print(cart)
for i in cart:
    price = cart[i]['price'] * cart[i]['num']
    sum_price += price
if sum_price > asset_total:
    print("余额不足!")
else:
    print("购买成功")

  

原文地址:https://www.cnblogs.com/sunshuhai/p/6286489.html