python基本数据类型练习

一、元素分类
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

1
2
3
4
5
6
7
8
9
10
11
list1 = [11,22,33,44,55,66,77,88,99,90]
dic1 = {
      'k1' :[],
      'k2' :[]
}
for  in   list1:
     if  l > 66:
         dic1[ 'k1' ].append(l)
     else :
         dic1[ 'k2' ].append(l)
print(dic1)

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

1
2
3
4
5
6
7
8
li = [ "alc" " aric " "Aex" "Tny" "rain" ]
list1 =[]
for  in  li:
     #使用strip方法确定能寻找到所有元素,startwith,endwith按条件进行查找
     if  l.strip().startswith( 'a' or  'A' ) and l.strip().endswith( 'c' ):
         #print(l.strip())
         list1.append(l.strip())
print(list1)

2、元组

1
2
3
4
5
6
7
8
9
10
tu = ( "alc" " aric" "Alx" "Tny" "rain" )
#找出的元素放到一个新列表中,因为元组中不能增加元素
list2 =[]
for  in  tu:
     #使用strip方法确定能寻找到所有元素,startwith,endwith按条件进行查找
     #if 判断遇到or和and是需要注意执行成功时的判断
     if  l.strip().startswith( 'a' or  'A' ) and l.strip().endswith( 'c' ):
         #print(l.strip())
         list2.append(l.strip())
print(list2)

3、字典

1
2
3
4
5
6
7
8
dic = { 'k1' "alx" 'k2' ' aric' ,   "k3" "Alx" "k4" "Tny" , "k5" : " Anc " }
#定义一个空字典
dic1 = {}
for  k, v  in  dic.items():
     if  ( v .strip().startswith( 'a' ) or  v .strip().startswith( 'A' )) and  v .strip().endswith( 'c' ):
         print( v )
         dic1[k] = v
print(dic1)

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

1
2
3
4
5
6
7
8
9
10
#  商品
li = [ "手机" "电脑" '鼠标垫' '键盘' ]
for  num, v  in  enumerate(li,1):
      print(num, v )
choice = int(input( "请选择商品:" ))
choice1=choice-1
if  choice1>=0 and choice1<=len(li)-1:
     print(li[choice1])
else :
      print( "商品不存在" )

四、购物车
# 功能要求:
#     要求用户输入总资产,例如:2000
#     显示商品列表,让用户根据序号选择商品,加入购物车
#     购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
#     附加:可充值、某商品移除购物车
方法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
goods = [
     { "product" "电脑" "price" : 1999},
     { "product" "鼠标" "price" : 10},
     { "product" "iphone" "price" : 5000},
     { "product" "kindle" "price" : 998},
]
#已经买到的商品
list_buy = []
#输入总资产
all_money = 0
all_money = int(input( "请输入总资产:" ))
#输出所有的产品
for  key,i  in  enumerate(goods,1):
     print(i[ 'product' ],i[ 'price' ])
#当条件成立时,在购买环节循环
while  True:
     #选择需要买的商品
     choice = input( "请选择商品(y/Y进行结算购买):" )
     #是否进行结算
     if  choice.lower() ==  "y" :
         break
 
     #循环所有的商品与选择商品进行对比,如果存在,就添加到list_buy中
     for  v  in  goods:
         if  choice ==  v [ "product" ]:
             list_buy.append( v )
#输出所有打算购买的商品
print(list_buy)
#定义商品总价初始值
total_price = 0
for  in  list_buy:
     #计算所有商品价格
     total_price = total_price+p[ "price" ]
if  total_price>all_money:
     print( "你的钱不够,请充值%d元" %(total_price-all_money))
     chongzhi = int(input( "输入充值金额:" ))
     all_money +=chongzhi
else :
     print( "购买成功" )
     print(list_buy)

方法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
goods = [
     { "product" "电脑" "price" : 1999},
     { "product" "鼠标" "price" : 10},
     { "product" "iphone" "price" : 5000},
     { "product" "kindle" "price" : 998},
]
salary = int(input( "请输入工资:" ))
#dic_shop_cart  = {"product":{"price":0,"num":0}}
dic_shop_cart = {}
#循环输出所有产品
for  in  goods:
     print(p[ 'product' ],p[ 'price' ])
while  True:
     choice = input( "请选择购买的商品(y/Y进行结算):" )
     if  choice.lower() ==  'y' :
         break
     #循环所有商品
     for  item  in  goods:
         #判断选择的商品是否在所有商品中
         if  item[ "product" ] == choice:
             #如果存在,就把商品赋值给product
             product = item[ "product" ]
             #如果商品在字典dic_shop_cart中,字典中num就加1
             if  product  in  dic_shop_cart.keys():
                 dic_shop_cart[product][ "num" ] = dic_shop_cart[product][ "num" ] + 1
                 #如果不在,就第一次添加到字典中
             else :
                 dic_shop_cart[product] = { "num" :1, "single_price" :item[ "price" ]}
     print(dic_shop_cart)
sum_price = 0
for  k, v  in  dic_shop_cart.items():
#    print(k,v)
     t_price =  v [ "single_price" ]* v [ "num" ]
     print( "购买%s的数量为%s:总价为%d" %(k, v [ "num" ],t_price))
     sum_price=sum_price+t_price
print( "所有商品总价为:%s" %sum_price)
if  sum_price>salary:
     print( "你的钱不够,哈哈哈。。。,别买了吧" )
else :
     print( "购买成功,有钱人啊。。。" )

 输出结果:


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
dic = {
     "河北" : {
         "石家庄" : [ "鹿泉" "藁城" "元氏" ],
         "邯郸" : [ "永年" "涉县" "磁县" ],
     },
     "北京" : {
         "大兴" : [ "黄村" "清源" "天宫院" ],
         "海淀" : [ "中关村" "西二旗" "五道口" ],
     },
     "安徽" : {
         "合肥" : [ "庐阳" "肥西" "滨湖" ],
         "安庆" : [ "桐城" "宜秀区" "岳西" ],
     }
}
for  in  dic:
     print(p)
p1 = input( "请输入省份:" )
if  p1  in  dic.keys():
     for  in  dic[p1]:
          print(s)
     s1 = input( "请输入市区:" )
     if  s1  in  dic[p1].keys():
         for  in   dic[p1][s1]:
             print(q)
     else :
         print( "市区还没有录入" )
else :
     print( "省份还没有录入" )

 执行结果:

猜你喜欢

转载自www.cnblogs.com/chenshengqun/p/9071228.html