练习题:
1、执行 Python 脚本的两种方式
解:python
python 1.py
./1.py
2、简述位、字节的关系
解:8位 = 1字节
3、简述 ascii、unicode、utf-‐8、gbk 的关系
4、请写出 “李杰” 分别用 utf-‐8 和 gbk 编码所占的位数
解:utf8:6 gbk:4
len(a)在python2位2,python3为utf位数6
可以通过
v = "李杰" for item in v: print(item)
在python2中运行后发现出来6行乱码,说明python2中的确把一个中文汉字当成三位
在pycharm中打开setting找到Project Interpreter中将python2添加进来即可使用python2
5、Pyhton 单行注释(#)和多行注释(三个双引号)分别用什么?
6、声明变量注意事项有那些?
解:数字字母下划线,不要用python内置的,不要用关键字,尽量有意义
7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
解:bit_length,5用二进制表示:101所以至少需要三位
8、布尔值分别有什么? True/False
解:对于空字符串为假,数字0为假。其他都是真
数字转字符串:a = 123 b = str(a)
字符串转数字:a = "123" b = int(a)
bool转换:bool()
9、阅读代码,请写出执行结果
a = "alex" b = a.capitalize() print(a) print(b)
请写出输出结果: alex
Alex
10、写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
a = name.strip() print(a)
b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
b = name.startswith('al') if b: print('yes') else: print('no')
c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
c = name.endswith('x') if c: print('yes') else: print('no')
d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name = "alex" d = name.maketrans('l','p') print(name.translate(d))
print(name.replace('l','p'))
e1.将name的每个字符后面都加上|
t = '|' e = t.join(name) print(e) #结果为 <class 'str'>
e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
e1 = name.split('l')
print(e1)
f. 请问,上一题 e 分割之后得到值是什么类型(可选)?
print(type(e1)) #结果为 <class 'list'>
g. 将 name 变量对应的值变大写,并输出结果
g = name.upper() print(g)
h. 将 name 变量对应的值变小写,并输出结果
h = name.lower() print(h)
i. 请输出 name 变量对应的值的第 2 个字符?
print(name[1])
j. 请输出 name 变量对应的值的前 3 个字符?
print(name[0:3]) #虽然写的三,但不含右端点。从0开始可以省略0
k. 请输出 name 变量对应的值的后 2 个字符?
k = len(name) print(name[k -2:]) #k后面一个空格接-2,-2后面加冒号表示从右边开始数两个
l. 请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index('e'))
m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
print(name[:len(name) -1]) #冒号在左边表示从左往右取,不含倒数第一位(左闭右开)
11、字符串是否是可迭代对象?如可以请使用 for 循环每一个元素?
解:例如能执行 for i in 值 此值就是可迭代对象
#类,数据类型 str int 等 各种功能
#对象,根据str等类型创建一个对象s = “alex”
12、请用代码实现:
a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选)
解:
v = “_".join("alexericrain") # a_l_e_x_e_r_i_c_r_a_i_n v = "_".join(['alex','eric','rain']) # alex_eric_rain
13、Python2 中的 range 和 Python3 中的 range 的区别?
解:python2立即创建 python2中xrange与python3中的range效果一样
python3只有在循环调用时才一个个创建出来
从小到大,range(0,100,3) 从大到小,range(100,0,-4) 每次减少4
14、实现一个整数加法计算器:
如:
content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
解:用户输入的是字符串类型的 "5+9" 利用split会得到列表,结合变量content得到两个字符,转成int后进行加法计算(题目已知是加法计算)
content = input('请输入内容:') v1,v2 = content.split('+') v1 = int(v1) v2 = int(v2) sum = v1 + v2 print(sum)
15、计算用户输入的内容中有几个十进制小数?几个字母?
如:
content = input('请输入内容:') # 如:asduiaf878123jkjsfd-‐213928
解:类似于一个投票系统:
content = input('请输入内容:') c1 = 0 c2 = 0 for item in content: if item.isalpha(): c1 += 1 elif item.isdecimal(): c2 += 1 print('字母个数',c1) print('十进制小数个数',c2)
16、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
解:类和对象的关系
17、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
解:考察format的应用
template = "敬爱可亲的{0},最喜欢在{1},地方{2}" name = input("请输入用户名") place = input("请输入地点") event = input("请输入事件") v = template.format(name,place,event) print(v)
18、制作随机验证码,不区分大小写。
流程:
-‐ 用户执行程序
-‐ 给用户显示需要输入的验证码
-‐ 用户输入的值
用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:def check_code():
解:为了不区分大小写,集体转换为大写或者小写即可。四位验证码
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 = ramdom.radint(0,9) checkcode += str(temp) return checkcode
while True: code = check_code() print(code) v = input('请输入您的验证码') v1 = v.upper() code1 = code.upper() if v1 == code1: print('正确') break else: print('错误,请重新输入新的验证码')
19、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如 "苍老师" "东京热",则将内容替换为 ***
解:字符串一旦被修改会生成一个新的字符串.记得一定要重新赋值给v,否则v的值不会变化
v = "jkdsnkfjns" v = v.replace('s',"***") v = v.replace('a',"***") print(v)
20、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式大隐
解:expandtabs 切片[0:20] len() 建立中文表格title时expandtabs选小一点这样视觉上看起来对齐
注意 v1 == 'q'or v1 == 'Q':不能简写成 v1 == 'q'or 'Q':否则会出错
s = "" while True: v1 = input('用户名:') if v1 == 'q'or v1 == 'Q': print('退出') break else: v2 = input('密码:') v3 = input('邮箱:') template = "{0} {1} {2} " v = template.format(v1,v2,v3) s = s + v title = '用户名 密码 邮箱' print(title.expandtabs(17)) print(s.expandtabs(20))
输出结果: