PT--work 02 日志文件+购物系统(注册 登录 购物)

  1 # 1. 打印图案
  2 # 1)
  3 for i in range(1,6):
  4     for j in range(1,i+1):
  5         print('*',end='')
  6     print('')
  7 
  8 # 2)
  9 for i in range(5,0,-1):
 10     for j in range(i,0,-1):
 11         print('*',end='')
 12     print('')
 13 
 14 # 3)
 15 for i in range(1,10,2):
 16     s='*'*i
 17     print(s.center(9))
 18 
 19 
 20 # 2.  将日志文件读取到不同的小文件中
 21 
 22 #  想复杂了,很多没有用到
 23 import os
 24 def func(a1):
 25     with open(a1,mode='r',encoding='utf-8') as f1:
 26         time=[]
 27         for line in f1:
 28             li = line.split()
 29             time.append(li[0])
 30             for m in time:
 31                     if li[0] == m:
 32                             with open(li[0],mode='a',encoding='utf-8')as f3:
 33                                     f3.write(line)
 34                                     print('')
 35                             break
 36             else:
 37                 with open(a1,mode='a',encoding='utf-8') as f2:
 38                     f2.write(line)
 39                     print('')
 40                 os.rename(a1+'副本',li[0])
 41 func('a1')
 42 
 43 
 44 # 方法二  简单化
 45 import os
 46 def func(a1):
 47     with open(a1,mode='r',encoding='utf-8')as f:
 48         for line in f:
 49             li = line.split()
 50             with open(li[0], mode='a', encoding='utf-8')as f3:   #直接写入文件中即可
 51                 f3.write(line)
 52                 print('')
 53 func('a1')
 54 
 55 
 56 # 3.
 57 
 58 def regist():  #注册
 59     my_username = input('请输入用户名:')
 60     my_password = input('请输入密码:')
 61     if my_username == ' ' or  my_password == ' ':
 62         print('输入用户名不合法,请重新输入!')
 63         return
 64     else:
 65         with open('a2',mode='a+',encoding='utf-8')as f:
 66             f.seek(0)
 67             li = f.readlines()
 68             for el in li:
 69                 el=el.split(':')
 70                 if my_username == el[0]:
 71                     print('用户名已存在,请重新输入!')
 72                     f.close()
 73                     return
 74             else:
 75                 f.write(my_username+':'+my_password+'\n')
 76                 f.flush()
 77                 f.close()
 78                 print('注册成功!')
 79                 return
 80 m = 0  #用于记录登录是否成功  1(成功)  -1(不成功)
 81 def login():  #登录
 82     global m
 83     m = 0
 84     for i in range(3,0,-1):
 85         my_username = input('请输入用户名:')
 86         my_password = input('请输入密码:')
 87         with open('a2',mode='r',encoding='utf-8')as f:
 88             li = f.readlines()
 89             for el in li:
 90                 lis = el.strip().split(':')  #strip() 去掉'\n'符号
 91                 if my_username == lis[0] and my_password == lis[1]:
 92                     print('登陆成功!')
 93                     m = m+1
 94                     return
 95             else:
 96                 print('登录失败,剩余次登录次数为%s'%(i-1))
 97     else:
 98         m = m-1
 99         return
100 
101 def shopping(zichan):  #购物
102     goods = [
103         {"name": "电脑", "price": 1999},
104         {"name": "鼠标", "price": 10},
105         {"name": "游艇", "price": 20},
106         {"name": "美女", "price": 998},
107     ]
108     sum=0   #计算商品总额
109     shop={}  # 索引  数量
110     if zichan.isdigit():  # 判断输入的是数字
111         while 1:
112             for i in goods:
113                 i_index = goods.index(i)
114                 print(i_index+1,i['name'],i['price'])  # 打印商品菜单
115             xu_hao = input('请用户选择商品的序号(N(结算)  Q(退出结算))):')
116             if xu_hao.upper() == 'Q':  #暂不结算
117                 break
118             elif xu_hao.isdigit() and 0 < int(xu_hao) < len(goods)+1:  #选择商品
119                 id=int(xu_hao)-1
120                 print(goods[id]['name'],goods[id]['price'])  #打印选择的商品
121                 if shop.get(id) ==None :
122                     shop[id] =1
123                 else:
124                     shop[id] = shop[id]+1
125             elif xu_hao.upper() == 'N':  #结算
126                 for i in shop:  #  i为idex
127                     sum = sum + shop[i]*goods[i]['price']
128                 if int(zichan) >= sum:
129                     for i in shop:
130                         print('购买的商品为%s,单价为%s,数量为%s'%(goods[i]['name'],goods[i]['price'],shop[i]))
131                     print('商品总额为%s,剩余额度为%s.'%(sum,int(zichan)-sum,))
132                     return
133                 else:
134                     print('账户余额不足!')
135                     break
136             else:
137                 print('输入有误,请重新输入!')
138     else:
139         print('输入有误,请重新输入!')
140 
141 
142 while 1:
143     print('''欢迎进入老男孩系统:
144 1. 登录
145 2. 注册
146 3. 购物
147 4. 退出
148     ''')
149     content=input('请选择菜单:')
150     if content == '1':
151         print('1. 登录')
152         login()
153         if  m == -1:
154             break
155     elif content == '2':
156         print('2. 注册')
157         regist()
158     elif content == '3':
159         print('3. 购物')
160         if m == 1:    #购物成功时
161             money = input('请输入你的资产:')
162             shopping(money)
163         else:
164             print('您未登录系统,请先登录!')
165     elif content == '4':
166         print('4. 退出')
167         break
168     else:
169         print('输入错误,请重新输入!')

 

posted @ 2018-08-10 16:06  葡萄想柠檬  Views(186)  Comments(0)    收藏  举报
目录代码