day 11 Python课上练习解释与基础知识练习题试题一
1,将文件对应的索引打印出来
方法1
test = input(">>>>") print(test) l = len(test) print(l) t = range(l) for item in t: print(item,test[item])
# 方法精简2 test = input(">>>>") for item in range(0,len(test)): print(item,test[item])
2,练习题
1、执行python脚本(script)的两种方式
(1)在Python解释器下,直接输入.py文件的路径(前提是环境变量已设置Python)
(2)进入Python 进入解释器,实时输入并获取执行结果。
2、简述位、字节的关系
一字节(Byte)=8 bit(二进制位)
3、简述ascii、unicode、utf-8、gbk的关系
最开始是acill,unicode,最后又出现了utf8(unicode的压缩版)
ascii 用8位二进制谁表示一字节
unicode 至少16位
utf-8 能少用则少用,不浪费内存,一个汉字用3个字节表示
gbk 中国使用,一个汉字用2个字节表示
4、请写出"李杰"分别用utf-8和gbk编码所占的位数
utf-8 一个汉字用3个字节表示 2个则6个字节 ,需48位
gbk 1个汉字需2个字节,2个需4个字节,需32位
v='李杰'
在Python2 len(v) 结果为6 显示utf-8的字节
在Python3中 显示为字符串的长度 即为 2
在py3中 len(a) 2
在py2中 len(a) 6
5、Python单行注释和多行注释分别用什么
单行 # 多行 '' '' ''
6、声明变量注意事项有哪些
只能用字母,数字,下划线组成,数字不能开头,Python中的关键字不能声明为变量名,不要和Python内置的东西重复
7、如有一下变量n1=5,请使用int提供的方法,得到改变量最少可以用多少个二进制位表示
n1=5 v=n1.bit_length() # 当前数字的二进制,至少用多少位表示 print(v)
结果:3
8、布尔值分别有什么
True False
"" 假 0 假
“ ” 真 其他 真
9、阅读代码,请写出执行结果
a='alex', b=a.capitalize() print('a','b') 结果为:alex Alex
10、写代码,有如下变量,请按照要求实现每个功能
name=' aleX'
a、移除name变量对应的值两边的空格,并输出移除后的内容
b、判断name变量对应的值是否以‘al’开头,并输出结果
c、判断name变量对应的值是否以‘X’结尾,并输出结果
d、将name变量对应的值中的‘l’替换为‘p’,并输出结果
e、将name变量对应的值根据‘l’分割,并输出结果
f、请问上一题e分割后得到的值是什么类型(可选) str
g、将name变量对应的值变大写,并输出结果
h、将name变量对应的值变小写,并输出结果
i、请输出 name变量对应的值的第2个字符
j、请输出 name变量对应的值的第3个字符
name=' aleX' v1=name.strip() v2=name.startswith('al') v3=name.endswith('X') v4=name.replace('l','p') v5=name.split('l') v7=name.upper() v8=name.lower() v9=name[2] v10=name[3] print(v1,v2,v3,v4,v5,v7,v8,v9,v10)
11、字符串是否可迭代对象?如可以请使用for循环每一个元素'
暂且认为:一个值若可以被for循环,则认为其为可迭代对象
test='goulonghui'
for item in test:
print(item)
12、请利用代码实现:
a.利用下划线将列表的每一个元素拼接成字符串,li='alexericrain'
b.利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']
li = "alexrucrain" t = "_".join(li) print(t)
li = ["alex","eric","rain"] c = "_".join(li) print(c)
结果:
a_l_e_x_r_u_c_r_a_i_n
alex_eric_rain
13、Python2中的range和Python3中的range的区别
rang的用法(用于创建连续数字,也可设置步长)
这边python2 和python3的区别还不一样
python2 会立即创建
python3 在会调用的时候才创建
这是对python2的一次优化
py2的xrang 同py3中的rang
14、实现一个整数加法计算器:
如:
content=input('请输入内容:') #:5+9 或 3+5或 5+12
cotent = input('>>>') v1, v2 = cotent.split('+') # 把用户输入的字符串分割开来 分别赋值给v1,v2 a = int(v1) # 把v1,v2转换为整形 b = int(v2) s = a + b print(s)
15、简述int 和 9 等数字 以及 str和“xxoo”等字符串的关系
int 指代整形 str 指代字符类型
创建的字符型是根据str类型创建的一个个对象
int,str类,12,3,abc对象
17、制作趣味模板程序:
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意实现
如:敬爱可爱的 xxx ,最喜欢在xxx地方干xxx
user_name=input('>>>') user_loc=input('>>>') user_like=input('>>>') v = '敬爱可爱的{name} ,最喜欢在{where}地方干{do}' v = v.format(name = user_name,where = user_loc,do = user_like) print(v)
18、制作随机验证码,不区分大小写
流程:
-用户执行程序
-给用户显示需要输入的验证码
-用户输入的值
用户输入的值和显示的值相同时实现正确信息;否则继续生成随机验证码继续等待用户输入。
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) v = input('>>>') code = code.upper() # 全部转换为大写 再进行比较 v = v.upper() if v == code : print('验证成功') # 如果二者相同,则打印验证成功,且退出循环 break else: pass # 如果二者不同,则继续循环
19、开发敏感词汇过滤程序,请使用户输入内容,如果用户输入的内容中包含特殊的字符:
如:‘苍老师’、‘东京热’,则将内容替换为***
v = input('>>>') v = v.replace('苍老师','***') v = v.replace('东京热','***') # 分2次替换v 即可实现 print(v)
20、制作表格
循环提示用户输入:用户名,密码,邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个字符有效)
如果用户输入q或Q表示不在继续输入,将用户输入的内容以表格形式打印出来。
s='' # 定义一个空字符 while True: v1 = input('用户名:') if v1 == 'q'or v1 == 'Q': # 输入q 或者 Q时 不在输入 break else: pass v2 = input('密码:') v3 = input('邮箱:') if len(v1) > 20 or len(v2) > 20 or len(v3) > 20: # 输入的字符串如果是大于20个 则取前20 v1 = v1[0:20] v2 = v2[0:20] v3 = v3[0:20] else: pass template = '{0}\t{1}\t{2}\n' # template 为定义的普通变量名 定义一个format格式 v = template.format(v1,v2,v3) s = s + v # 在空字符串的基础上 叠加 print(s.expandtabs(20))