Python-分析练习题
有限数据循环 -> for,range
死循环->while Tire:
补充知识点:range
1.py27和py35中range得区别
py27:
range(),写用于生成连续数字,列表类型
xrange(),写用于连续的数字,for循环时才能使用,未知类型(生成器)
py35:
range() = py27 xrange()
应用:
# for num in range(1,101):
# if num == 77:
# continue
# print(num)
# 2. 步长(默认1)
# for num in range(1,101,1):
# print(num)
倒序:
# for num in range(100,0,-1):
# prin
分析练习题:(主要讲解的部分,还有一些没有讲完,待更新)
1、执行 Python 脚本的两种方式
(1).一个在终端运行,2.在PyCharm中运行
2、简述位,字节的关系
在ascii码中,8位表示一个字符
8位(bit) = 1字节(byte)
3、简述 ascii、unicode、utf-8、gbk 的关系
ascii:只支持255种,无法识别中文编码,8位表示一个字符。
unicode: 称为最全的编码,也称为“万国码”,可以支持全世界的编码。(弊端:占用的空间太大)
utf-8:他是一种支持世界万物的一种编码,对Uniocode进行优化编码:用最少的位数表示所有文字(一个汉字占三个字节)
gbk:是中国自己拿来常用的编码,(一个汉字占2个字节)
4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数
在utf-8中:“李杰”占:48位
在gbk中:李杰“”占:32位
5、Pyhton 单行注释和多行注释分别用什么?
单行注释:前面加“#”
多行注释:有两种,1.头部和底部加“,,,” 2.全选中按 “Ctrl + ?”键
6、声明变量注意事项有那些?
(1.) 变量名只能是 字母、数字或下划线的任意组合
(2.) 变量名的第一个字符不能是数字
(3.) 不能使用Python中内部的关键字
(4.) 建议:见名之意
7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
n1 = 5 val = n1.bit_legth() print(val) # 结果是3个
8、布尔值分别有什么?
简称bool True: # 1
False: # 0
9、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
输出的结果是: a:alex
b:Alex
12、请用代码实现:
li=[‘alex’,’eric’,’rain]
利用下划线将列表的每一个元素拼接成字符串.
#字符串 ,v = "xxxx" v.join(可迭代对象)
#for循环的就是迭代对象
如下:
li=[‘alex’,’eric’,’rain]
result = "_".join(li) print(result)
17、制作随机验证码,不区分大小写。
流程:
- 用户执行程序
- 给用户显示需要输入的验证码
- 用户输入的值
用户输入的值和显示的值相同时显示正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:
def check_code(): import random checkcode = '' for i in range(4): current = random.randrange(0,4) if current != i: temp = chr(random.randint(65,90)) else: temp = random.randint(0,9) checkcode += str(temp) return checkcode #生成随即验证码 while True: code = check_code() print(code) inp = input("请输入验证码:") if inp.strip().lower() == code.strip.lower(): print("验证码输入成功") break else: print("验证码错误,请重新输入")
28、购物车
功能要求:
要求用户输入自己拥有总资产,例如: 2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
v = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] #1.让用户输入自己账户余额 while True: money = input("请输入账户总金额:") money = money.strip() if money.isdecimal(): money = int(money) break else: print("请正确输入数字") #2.显示商品列表 num = 1 for item in v: print("num, item["name"], item["price"]") num += 1 #3.让用户购买商品 cost = 0 while True: index = input("请选择商品序号(q/Q结算:)") if index.lower().split() == "q": break #需要判断是否有空格,数字,以及输入的范围 index = index.strip() if index.isdecimal(): index = int(index) index = index - 1 if index >= 0 and index < len(v): temp = "你购买商品%s, 价格:%d" % (v[index]["name"], v[index]["price"]) print(temp) cost += v[index]["price"] else: print("输入序号不合法") else: price("请输入数字") if money >= cost: print(""购买成功) else: print("余额不足")
39、分页显示内容
a.通过 for 循环创建 301 条数据,数据类型不限,如:
alex-1 alex1@live.com pwd1
alex-2 alex1@live.com pwd2
alex-3 alex1@live.com pwd3
...
PS:可使用 while 循环自己创建
user_list = []
循环,创建字典 {‘user’:’xxx’,‘email’:’xxx’,’pwd’:’xxxx’},将创建的字典追加到列表中。
b. 提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据
注意:
- 每页显示 10 条数据
- 用户输入页码是非十进制数字,则提示输入内容格式错误
#1.创造301条数据 user_list = [] i = 1 while i <= 301: user_list.append({'username': "alex-%d" %(i,),'email': "email-%d" %(i,),'password':"pwd-%d" %(i,)}) i += 1 #2.用户输入页码,每页显示10条数据 while Tire: page = input("请选择页码(每页显示10条数据):") page = int(page) start = (page-1) * 10 end = page * 10 current_page_user = user_list[start:end] for item in current_page_user: print(item)