知识整合及补充
今天主要讲了上周末的作业,并且补充了许多东西
1..range 和 xrange:
range常和for一起用,有限数据类型的循环,而while常用于无限循环
····range(a,b,c) a 表示起始位置,b 表示结束位置,c 表示跳跃位置(步长 默认为1 且默认为加)
取 a 到 b 之间,b 不取
可以取倒序,但是倒序步长必需要写,
····xrange 只在python27里面有,相当于一个未知类型或者说生成器 ,不是一次输出,占用内存小
li=["11","22","33","44","22","33",] for i in range(0,len(li)): print(i) 倒序打印需加负的步长 for num in range(100,0,-20): print(num) for i in range(0,50): if i==44: continue#/pass else: print(i)
2....字符串内容
连接符(字符串类型).join(迭代对象) 迭代对象:可以重复提取使用 可用for循环的:可迭代对象
12、(*)请用代码实现:li = [‘alex’,’eric’,’rain] 利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain str1 = "" li = ["alex","eric","rain"] a = 1 for i in li: str1 += i if a < (len(li)): str1 += '_' a = a + 1 print(str1) 新方法#### li = ["alex","eric","rain"] msg = "" is_first = True for item in li: if is_first: tmp = item is_first = False else: tmp = "_"+item msg += tmp print(msg) 新功能.join() li = ["alex","eric","rain"] a = "_".join(li) print(a)
3...预备知识
在学习函数之前:只要代码运行,放在内存中,就能使用
索引取值要注意范围:[:]切片取值是范围没关系
部分程序
## 5 +9 content = input('请输入表达式:') # content.split('+') a,b = content.split('+',1) #这里是一定要确定分割后是两个元素才能用这个方法,以此类推也可以是三个 # content.split('+',2) a = int(a.strip()) b = int(b.strip()) print(a+b)
# 29、购物车 功能要求: # 要求用户输入自己拥有总资产,例如:2000 # 显示商品列表,让用户根据序号选择商品,加入购物车 # # 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 #加问题:购买的商品信息,商品价格,商品个数 # 1 v = [{ "name":"电脑", "price":1999},{ "name":"鼠标", "price":10}, {"name":"游艇","price":20},{"name":"美女", "price":998}, ] # 用户输入金额 while True: money = input("请输入总金额:") money = money.strip() if money.isdecimal() : money = int(money) break else: print("请重新输入数字:") print(money) 用户输入序列号,并加入购物车 num = 1 sum = 0 n = "" p = 0 a = 0 for item in v: print(num,item["name"],item["price"]) while True: index = input("请输入序列号(q/Q退出结算):") if index.lower().strip() == "q": break if index.isdecimal(): index = index.strip() index = int(index) index = index-1 if index >= 0 and index < len(v):#给定一个序列范围 print("加入购物车成功,商品为:%s,价格为:%d" %(v[index]["name"],v[index]["price"])) a = a+1 sum +=v[index]["price"] n += v[index]["name"]+" " p += v[index]["price"] else: print("输入序列号错误") else: print("输入格式错误") if money >= sum: print("购买成功,购买的商品为:%s,价格为:%s,商品个数为:%d"%(n,p,a)) else: print("余额不足")
30、 分页显示内容 a.通过for循环创建301条数据,数据类型不限,如: alex-1 alex1@live.com pwd1 alex-2 alex2@live.com pwd2 alex-3 alex3@live.com pwd3 ... PS: 可使用while循环自己创建 user_list=[]循环, 创建字典{‘ user’:’ xxx ’,‘email’:’xxx’,’ pwd’:’xxxx’},将创建的字典追加到列表中。 b.提示用户 请输入要查看的页码,当用户输入指定页码,则显示指定数据 # 注意: - 每页显示10条数据 -用户输入页码是非十进制数字,则提示输入内容格式错误 # #1 创造301条数据 i = 1 user_list = [] while i<=301: user_list.append({"user": "alex-%d" % (i), "eml": "alex-%d@live.com" % (i), "password": "pwd%d" % (i)}) i = i + 1 while True: if len(user_list) % 10 == 0: 98-101:求页数的代码,要会用方法 num = len(user_list) /10 else: num = len(user_list) / 10 + 1 page = input("请输入页码:") if page.isdecimal(): page = int(page) if page > 0 and page < num : start = (page-1)* 10 end = page * 10 user_page = user_list[start:end] for item in user_page: print(item) else: print("你输入的页码不存在,请重新输入:") else: print("格式输入错误,请重新输入:")
整理的小重点:
py2和py3区别
1 py2 # raw_input()
py3 # input()
2 py2 # range()
xrange()
py3
range()相当于py2里的xrange()
3 py2 ascii( # -*-encoding:utf-8 -*-)
py3 utf - 8
4 py2 print"alex"
py3 print('alex')
5 py2 除法 取到小数
py3 除法 取到整数
6 bytes
pyhton3(前提在python3里) (默认utf-8)里会自动变成utf-8的010101
特殊的字符串:表现上:a = ="adsa'本质是Unicode(都是四位) 的01010100
字节:表现:a = b"ads" 本质是其他编码的0101010,不能是Unicode的
有中文时的表现形式 a = b"\x12\x23\xas\xdf\...." \x:16进制
浙公网安备 33010602011771号