# python_practice **Repository Path**: shuimushisan/python_practice ## Basic Information - **Project Name**: python_practice - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 列表 ### 笔记参考链接:[python官网教程](https://docs.python.org/3/tutorial/datastructures.html#) - **列表相关方法** 序号|方法|作用 ---|:--:|---: 1|list.append()|在列表末尾添加新的元素 2|list.count()|统计某个元素在列表中出现的次数 3|list.extend()|在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 4|list.index()|从列表中找出某个值第一个匹配项的索引位置 5|list.insert()|将对象插入列表 6|list.pop()|移除列表中的一个元素,并且返回该元素的值(若无输入数字,则默认为最后一个元素) 7|list.remove()|移除列表中某个值的第一个匹配项 8|ist.clear()|清空列表 9|list.copy()|复制列表 *** - **列表复制的方法——copy()** ```python first = [1, 2, 3, 4, 5,[1,2,3]] print(first) second = first.copy() print(second) first[5].append(4) print(first,'\t',second) ``` > 赋值不等于我们想要的复制,那只是浅复制,若使用浅复制那当上方的first发生变化时,我们复制的second是不会跟随first发生变化的。 --- - **列表的嵌套** #### eg: ```python >>> transposed = [] >>> for i in range(4): ... # the following 3 lines implement the nested listcomp transposed_row = [] for row in matrix: transposed_row.append(row[i]) transposed.append(transposed_row) >>> transposed [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] ``` --- - **列表的切片以及join的应用** #### eg: ```python # 列表切片操作 phrase = "Don't panic!" plist = list(phrase) print(phrase) print(plist) # 取有用的字母 然后拼接 new_phrase = ''.join(plist[1:3]) new_phrase = ''.join([new_phrase, plist[5], plist[4], plist[7], plist[6]]) print(plist) print(new_phrase) ``` --- - **元组的基本创建和使用** #### eg: ```python >>> t = 12345, 54321, 'hello!' >>> t[0] 12345 >>> t (12345, 54321, 'hello!') >>> # Tuples may be nested: ... u = t, (1, 2, 3, 4, 5) >>> u ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5)) ``` >一个元组包含多个用逗号分隔的值。 >>在输出元组上总是将其括在圆括号中,以便可以正确地解释嵌套元组。可以在带或不带括号的情况下输入它们,尽管无论如何通常都需要括号。不可能分配给元组的各个项目,但是可以创建包含可变对象(例如列表)的元组。 >>>尽管元组看起来类似于列表,但是它们通常用于不同的情况和不同的目的。元组是不可变的,并且通常包含元素的异类序列,这些元素可以通过拆包或索引进行访问。列表是可变的,并且它们的元素通常是同质的,可以通过迭代列表来访问。 --- #### 购物车练习 - 老师版 ```python # Author:zhichao import random ''' 购物车程序项目:   要求:1、运行程序后,让用户输入支付宝余额,然后打印我们的商品列表给用户。     2、让用户输入商品编号进行商品的购买。      3、用户选择商品后,检查用户的余额是否够,若够则直接扣款,不够则提醒用户。      4、用户可以随时退出购买,退出时打印用户已购买的商品和支付宝余额。 ''' shopping_list_name = [ ("华为 mate40",9800), ("iphone12",8800), ("自行车",300), ("python_book Xu",80), ("奶茶",15) ] aipay = int(input("请输入余额:")) user_shopping_list = [] while True: print("--------------☆商品☆---------------") # 打印商品信息 for item in shopping_list_name: print("1.", shopping_list_name[0], "元") print("2.", shopping_list_name[1], "元") print("3.", shopping_list_name[2], "元") print("4.", shopping_list_name[3], "元") print("5.", shopping_list_name[4], "元") print("---------------^---^---------------") user_chioce = (input("请输入商品编号(或者输入“退出“检查购物信息):")) if user_chioce.isdigit(): user_chioce = int(user_chioce) if user_chioce >= 0 and user_chioce < len(shopping_list_name): if aipay>shopping_list_name[user_chioce][1]: user_shopping_list.append(shopping_list_name[user_chioce]) money02 = aipay-shopping_list_name[user_chioce][1] print("已为您添加该商品,您的余额还有%s" %(money02)) else: print("您的余额不足,就这点钱还想买,回家洗洗睡吧~") break else: print("商品不存在") elif user_chioce == "退出": for item in user_shopping_list: print("你买了%s" %(item[0]),"花了%s钱"%(item[1])) print("您的余额还有:", (money02)) break else: print("您输入的信息有误") break ``` --- - 练习版 ```python yue=int(input("请输入您的支付宝余额:")) Goods = [['充电宝',150], ['相机',1999], ['手机',2651], ['背包',200], ['电脑',9500]] print("欢迎光临~") print("——————^————商品——————^——————") print("1.",Goods[0],"元") print("2.",Goods[1],"元") print("3.",Goods[2],"元") print("4.",Goods[3],"元") print("5.",Goods[4],"元") print("——————^——————————————^——————") print("温馨提示:完成购买或不想再逛时输入6,即可退出购物车") bought=[] while(1): n=int(input("请输入要购买的商品编号:")) if n==6: break elif yue >= Goods[n-1][1]: print("购买成功") bought.append(Goods[n][0]) yue-=Goods[n-1][1] else: print("好家伙,你是真的穷啊,钱那么少就来买东西,这合理吗?") info ='''------- 已购列表 ------- 已购买商品:{0} 当前余额:{1}元 '''.format(bought,yue) print(info) ```