2.11 列表循环和排序 n = "银角大王" n[::-1] >>> n = "银角大王" >>> n[::-1] '王大角银' 上面切片,切成的反转,但是实际上不会对源列表造成反转. ---------------- n = ['银角大王',123] n.reverse() print(n) D:\Python\python.exe D:/cc/反转.py [123, '银角大王'] reverse反转,直接对源列表造成了反转. --------------------- n.sort() n = [1,2,32,15,7,5] n.sort() print(n) 排序 ----------------------------- n = ['123','678','$','234'] n.sort() print(n) 如果是字符串,就会对比十进制 python3 里面. 数字和字符串 无法 在一起进行sort排序,不过python2里面可以 --------------- 针对列表 names=['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '银角大王', 'eva','鸡头'] 进入以下操作 通过names.index()的方法返回第2个eva的索引值 把以上的列表通过切片的形式实现反转 打印列表中所有下标为奇数的值 通过names.index()方法找到第2个eva值 ,并将其改成EVA ------------------- 根据以下数据结构: goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] 实现功能要求: 1、启动程序后,让用户输入工资,然后进入循环,打印商品列表和编号 2、允许用户根据商品编号选择商品 3、用户选择商品后,检测余额是否够,够就直接扣款,并加入购物车, 不够就提醒余额不足 4、可随时退出,退出时,打印已购买商品和余额 ------------------------------ 2.12 元组 不可变 = 只读列表 只有 count 和 index 用法 如果元组里面包含可变数据类型, 比如 "列表" , 那么 这个列表可以改变. >>> data (99, 88, 77, ['Alex', 'Jack'], 33) >>> data[3][0] = '金角大王' >>> data (99, 88, 77, ['金角大王', 'Jack'], 33) 2.14 数据类型--字符串 字符串是有序的字符的集合, '' 或者 "" 包含的 属于字符串 ----------------------- capitalize 首字母大写 a = "hahx" a.capitalize() 'Hahx' --------------------- casefold 把字符串全变小写 a ="HAHX" a.casefold() 'hahx' ----------------------- center 补齐 a.center(10,'-') 补齐10个,用- 补齐10个 '---HAHX---' a = "welecome to 广东" a.count('e') 默认查找所有e 共有3个 3 a.count('e',2,-1) 指定从第二个开始到结束,查找有几个字符串 e,只有2个 2 ------------------------------- startswith() 判断是否xx开头 ------------------------------- endswith a.endswith('广东') 判断是否广东结尾 True ----------------------------------------------- find a = "welecome to 广东" a.find('e') 1 # 从下标0开始,查找在字符串里第一个出现的子串,返回结果: a.find('e',7) 7 # 从下标7开始,查找在字符串里第一个出现的子串:返回结果 7 a.find('s') -1 # 找不到返回-1 有点类似 index --------------------------- format() s = "Welcome {0} to Apeland,you are No.{1} user.,再次恭喜:{0}" s.format('大傻瓜',5) 'Welcome 大傻瓜 to Apeland,you are No.5 user.,再次恭喜: 大傻瓜' 里面出现2个{0}, 只要按照默认顺序排列好,就没问题 ------------------------------ s = "Welcome {0} to Apeland,you are No.{1} user" s.format('大傻瓜',5) 需要按照默认顺序来,. 'Welcome 大傻瓜 to Apeland,you are No.5 user.' -------------------------------------- s = "Welcome {name} to Apeland,you are No.{count} user." s.format(count= 4,name='大傻瓜') 可以不用指定顺序, 只要定义好就可以 'Welcome 大傻瓜 to Apeland,you are No.4 user.' --------------------------- isdigit() 判断是否是数字 a = "3" # 不能直接写3 ,否则会报错. AttributeError: 'int' object has no attribute 'isdigit' if not a.isdigit(): print('no') else: print('yes') yes --------------------------------- islower() 是否由小写字母组成 -------------------------------- isupper() 是否都为大写组成 ----------------------------- isspace() 是否只由空格组成 ------------------- join() 把列表的字符串拼接起来 可以指定拼接的 格式 >>> n = ['alex','jack','rain'] >>> '|'.join(n) 'alex|jack|rain' ----------------------------- ljust() 补齐剩下的,从字符串最后一个地方开始补齐指定的格式,如'-' a ="haha" a.ljust(10,'-') 'haha------' ------------------------------ rjust() 补齐剩下的,从字符串最开始地方开始补齐指定的格式,如'*' a.rjust(10,'*') '******haha' ----------------------------- lower() 方法转换字符串中所有大写字符为小写, 其效果和 casefold() 方法非常相似。 两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效, 对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。 ------------------------------ strip() 将一个字符串分隔成多个字符串组成的列表 把字符串2边的 \n \t 空格去掉 a = "\t 简单 \n " a '\t 简单 \n ' a.split() ['简单'] #split之后,组成了列表 a ='alex,haha.jbm, mm|qq' a.split(",") ['alex', 'haha.jbm', ' mm|qq'] a.split(" ") ['alex,haha.jbm,', 'mm|qq'] a.split("|") ['alex,haha.jbm, mm', 'qq'] lstrip() split左边的 rstrip() split右边的 ----------------------------- replace() 替换, 如果有多个同样的, 那么会把所有的都改掉 a = "我有一只狗叫jack,jack喜欢吃猪肉,你喜欢jack吗" a.replace("jack","tom") '我有一只狗叫tom,tom喜欢吃猪肉,你喜欢tom吗' a.replace("jack","tom",2) 加上参数2,那么只改2次 '我有一只狗叫tom,tom喜欢吃猪肉,你喜欢jack吗' --------------------------- swapcase() 对字符串的大小写字母进行转换。 a ='alEXx,haHasS.JMK, Mm|qQ' a.swapcase() 'ALexX,HAhASs.jmk, mM|Qq'