700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 风无定 人无常 人生如浮萍 聚散两茫茫——元组类型 字典类型的内置方法 第九天

风无定 人无常 人生如浮萍 聚散两茫茫——元组类型 字典类型的内置方法 第九天

时间:2018-10-23 02:58:58

相关推荐

风无定 人无常 人生如浮萍 聚散两茫茫——元组类型 字典类型的内置方法 第九天

想想自己混的也是挺糟心的,从一个毫无疑问一定可以毕业的学生到了一个也许只能我一个不能毕业的学生;从一个不需要谁太担心的人,变成一个老头或者小孩?总而言之,如人生如浮萍,聚散两茫茫所说,一切都存在着未知,一件事没确定之前都是很难判断的。风无定,人无常,人生如浮萍,聚散两茫茫。加油吧!希望借此机会能够跳出chong围攀上龙凤枝,真正拼一把,希望吧!

goods=[{'商品编号':'1','商品名称':'苹果顶配电脑','商品价格':100001,},{'商品编号':'2','商品名称':'联想低配电脑','商品价格':10000},{'商品编号':'3','商品名称':'苹果手机','商品价格':10},{'商品编号':'4','商品名称':'迈凯伦 720s','商品价格':10000000},]name = 'cyd'psd = '123'salary = 0count1 = 0count2 = 0count3 = 0count4 = 0shopping_lists = []shopping_dicts = {}print("您随时可以按’q'退出该程序。")while count1 < 3:count1 += 1inp_name = input('请输入您的名字: ').strip()if inp_name == 'q':count1 = 3breakinp_psd = input('请输入您的密码: ').strip()if inp_psd == 'q':count1 = 3breakif name == inp_name and psd == inp_psd:print('欢迎VIP %s!!!\n' %inp_name)while count2 < 3:salary = input('请输入您想要贷款的金额(金额 < 100000): ').strip()if str(salary) == 'q':count1 = 3count2 = 3breakif salary.isdigit():passelse:print("贷款金额输入请使用数字输入: ")continueif int(salary) < 100000:passelse:print("抱歉!你没有这么高的额度。")continuewhile count3 < 3:salary = int(salary)print('\n' + ' '*25 + '商品清单' + '\n')for good in goods:print('-'*10 + str(good) + '-'*10)print("您目前剩余金额: " + str(salary))label = input("请输入您想购买的商品编号: ").strip()if label == 'q':count1 = 3count2 = 3count3 = 3count4 = 3breakif label.isdigit():passif int(label) < len(goods) + 1 and int(label) > 0:passelse:print("您输入的商品不存在,商品编号请使用现有商品编号数字输入,请重新输入你想要购买的商品: ")count3 = 0continuegood_count = input("请输入您想购买的商品数量: ").strip()if good_count == 'q':count1 = 3count2 = 3count3 = 3count4 = 3breakif good_count.isdigit():passelse:print("商品数量请使用整数,请重新输入您想购买的商品数量: ")count2 = 0continueprint("您购买的是: %s * %s" %(goods[int(label) - 1]['商品名称'], good_count))for good in goods:if label in good['商品编号']:if salary - good['商品价格']*int(good_count) < 0:print("您的余额不足:")recharge = input('''1.输入'有德无敌帅'进行充值,充值金额为:10000000(一辆迈凯伦)\n2.输入'我已向支付宝15306815606转账'并向支付宝账户15306815606充值¥10,充值金额:1000000\n3.输入'3',充值金额:1000000\n4.输入'q'退出购物车\n请输入您想要充值的方法: ''').strip()if recharge == 'q':count1 = 3count2 = 3count3 = 3count4 = 3breakif recharge == '有德无敌帅':print("大佬我向你致敬!!!"* 3)salary = 10000000 + salarycontinueif recharge == '我已向15306815606支付宝转账':print("谢谢您的支持!!!"* 2)salary = 1000000 + salarycontinueif recharge == '3':print('''\t\t\t\t\t小气鬼喝凉水,老师打你你歪嘴,\n小气鬼喝凉水,喝了凉水变魔鬼,\n小气鬼喝凉水,娶个老婆四条腿,\n小气鬼喝凉水,生个儿子没大腿,\n小气鬼喝凉水,砸破罐子,割破嘴,\n小气鬼,喝凉水,回家抱着老婆亲不了嘴。\n''')salary = 100000 + salarycontinueelse:print("输出有误,请重新输入,需用数字输入序列号!")continueelse:salary = salary - good['商品价格']*int(good_count)print("您的余额还有: %s" %salary)for shopping_list in shopping_lists:if goods[int(label) - 1]['商品名称'] == shopping_dicts['商品名称']:shopping_dicts['商品数量'] += int(good_count)breakelse:shopping_dicts = {'商品名称': good['商品名称'], '商品数量': int(good_count)}shopping_lists.append(shopping_dicts)print("你当前购物车现有物品: %s" %shopping_lists[:])while count4 < 1:quit2 = input("如果还想购买请按‘c’,否按'q'退出程序").strip()if quit2 == 'c':count3 = 0count4 = 0breakelif quit2 == 'q':count1 = 3count2 = 3count3 = 3count4 = 3breakelse:print("您输入有误,请重新输入。")count4 = 0else:print("请重新输入您的账号密码。")if count1 == 3:breakprint("\n您已经成功购买: " + str(shopping_lists[:]))print("您还有余额: %s" % salary)

附代码:终极购物车代码。

第八天

元组类型

元组:元组是不可变的列表,能存入多个值,但多个值只有取的需求,而没有改的需求】

定义方式:在()内用逗号隔开任意类型的值

强调:当元组只有一个值的时候,务必加上一个逗号

x=('egon',)print(type(x))

常用操作和内置方法:

1.按照索引取值(可以正向取,也可以反向取),只能取

2.切片(顾头不顾尾, 步长)

names=('alex','egon','wxx','lxx','cxxx')print(names[1:3])

3.长度len()

names=('alex','egon','wxx','lxx','cxxx')print(len(names))

4.成员运算in 和 not in

names=('alex','egon','wxx','lxx','cxxx')print('alex' in names)

5.循环

names=('alex','egon','wxx','lxx','cxxx')for item in names:print(item)

元组需要总结的方法:

1,del删除

names=('alex','egon','wxx','lxx','cxxx','lxx')del names[0]

2.数出元组内值的个数

print(names.count('lxx'))

3.检索元组内值的位置

print(names.index('wxx',0,3))

元组总结:

1.存一个值或多个值,存的值可以是任意类型的

2.有序

3.不可变

注意:列表可变的底层原理:

指的是索引所对应的内存地址是可以改变的

元组不可变的底层原理:

指的是索引所对应的值内存地址是不可以改变的,或者反过来说,只要索引对应值的内存地址没有改变,那么元组始终是没有改变的

字典类型:

value通常可以是任意类型,key 通常是不可变类型,但大多数是字符串类型

优先掌握的操作和内置方法:

1.按key取值,可存可取

d={'x':1,'y':2}d['x']=100print(d)d['z']=3print(d)

2.长度len,

d={'x':1,'y':2}print(len(d))

3.成员运算in 和 not in

d={'x':1,'y':2}print('x' in d)

4.删除。pop和del类似于列表

d={'x':1,'y':2}del d['x']print(d)res=d.pop('y')print(d)print(res)

5.popitem()随机删除字典中的一个键值对

res=d.popitem()print(d)print(res)

6.键keys()值values()和键值对items()

msg_dic={'apple':10,'tesla':100000,'mac':3000,'lenovo':30000,'chicken':10,}names=[]for k in msg_dic:names.append(k)print(names)values=[]for k in msg_dic:values.append(msg_dic[k])print(values)keys=msg_dic.keys()print(keys)for k in keys:print(k)=l=list(keys)print(l)vals=msg_dic.values()print(vals)print(list(vals))print(msg_dic.items())print(list(msg_dic.items()))

7.循环

只取keyfor k in msg_dic: print(k,msg_dic[k])for k in msg_dic.keys(): #keys可加可不加 print(k,msg_dic[k])只取valuefor v in msg_dic.values(): print(v)取key和valuefor k,v in msg_dic.items(): #k,v=('apple', 10) print(k,v)

需要掌握的内置方法:

1.get()获取某个不存在的值的时候返回None,不会报错

d={'x':1,'y':2,'z':3}v=d.get('xxxx')print(v)print(d['xxxxxxx'])

2.update(),把一个字典加入另一个字典中

d={'x':1,'y':2,'z':3}d1={'a':1,'x':1111111}d.update(d1)print(d)

3.fromkeys,可以把一个列表初始化一个初始字典

l=['name','age','sex']d={}for k in l:d[k]=Noned=dict.fromkeys(l,None)print(d)

4.setdefault

info.setdefaultinfo={'name':'egon','age':18,'sex':'male'}如果字典中有setdefault指定的key,那么不改该key对应的值,返回原的valueres=info.setdefault('name','EGON_NB')print(info)print(res)如果字典中没有setdefault指定的key,那么增加一个key:value,返回新的valueinfo.setdefault('height',1.80)print(info)info={'age':18,'sex':'male'}v=info.setdefault('name','浩哥')print(v)

setdefault控制循环避免循环重复的值

s='hello alex alex say hello sb sb'l=s.split()print(l)d={}for word in l: #word= 'hello' if word not in d:d[word]=1 #{'hello':2, 'alex':2,'say':1} else:d[word]+=1print(d)s='hello alex alex say hello sb sb'l=s.split()print(l)d={}d={'hello':2,'alex':2}for word in l: #word='alex' d[word]=l.count(word) #d['alex']=2 d.setdefault(word,l.count(word))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。