1、执行Python脚本的两种方式
python解释器python 1.py
2、简述位、字节的关系
8 bits = 1 byte(8位一字节)
计算机处理以字节(byte)为单位
存储以位(bit)为单位
3、简述ascii、unicode、utf-‐8、gbk的关系
ascii 英文编码,8个二进制位代表一个字母,总共可以有2的8次方减去1个等于255个
gbk是中文编码,是用的16个二进制代表一个汉字,有点浪费空间
uft-8也是中文编码,也是用的16个二进制代表一个汉字,但是能用8位表示就用位了
4、请写出“李杰”分别用utf-‐8和gbk编码所占的位数
utf-8:6
gbk:4
a="李杰"
python3:
len(a) >>>>输出:李杰 2个字符
python2:
len(a) >>>输出:六个乱码 6个字节
5、Pyhton单行注释和多行注释分别用什么?
单行: #
多行: ''' ''' or """ """
6、声明变量注意事项有那些?
声明:变量只能由字母、下划线、数字组成,且数字不能开头
尽量不适用python内置的名字(sum,class。。。。。)
7、如有一下变量n1 =5,请使用int的提供的方法,得到该变量少可以用多少个二进制位表示?
3个二进制位
a=5v=int.bit_length(a)print(v)
8、布尔值分别有什么?
True False
"" >>>False "有内容" >>> True
0 >>>False 其他 >>>True
######################################
a = 123 b="i"
bool(a)bool(b) >>>>>>布尔值
######################################
类型转换: new = 要转换类型(old)
例: 字符串转换为数字
#字符串转换成数字 其他类型转换方式相同
a="123"b=int(a)
9、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果:
"alex"
"Alex"
10、写代码,有如下变量,请按照要求实现每个功能
name = " witharusH"
a.移除name变量对应的值两边的空格,并输出移除后的内容
name = "WitharusH"v= name.strip() #清楚字符串中左右两边的空格 中间的无法去除
print(name)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
WitharusH
b.判断name变量对应的值是否以"wi" 开头,并输出结果
name = "WitharusH"v= name.startswith('Wi') #判断字符串以什么开头
print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
True
c.判断name变量对应的值是否以 "H" 结尾,并输出结果
name = "WitharusH"v= name.endswith('H')print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
True
d.将name变量对应的值中的“i”替换为 “p”,并输出结果
name = "WitharusH"v= name.replace('i','p')print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
WptharusH
e.将name变量对应的值根据 “r” 分割,并输出结果。
name = "WitharusH"v= name.split('r')print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
[' Witha', 'usH']
f.请问,上一题 e 分割之后得到值是什么类型(可选)?
列表
g.将name变量对应的值变大写,并输出结果
name = "WitharusH"v=name.upper()print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
WITHARUSH
h.将name变量对应的值变小写,并输出结果
name = "WitharusH"v=name.lower()print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
witharush
i.请输出name变量对应的值的第2个字符?
name = "WitharusH"
print(name[1]) #第二个字符是下标为1的字符
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
W
j.请输出name变量对应的值的前3个字符?
方法一:
name="WitharusH"n=0while n <3:print(name[n])
n=n+1
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
W
i
方法二:
name="WitharusH"
print(name[0:3]) #切片
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
Wi
k.请输出name变量对应的值的后2个字符?
name="WitharusH"
print(name[-2:])
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
sH
l.请输出name变量对应的值中“r”所在索引位置?
name = "WitharusH"
for item inrange(len(name)):if name[item] == "r":print(name[item], item)else:pass
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
r 6
m.获取子序列,仅不包含后一个字符。如:oldboy则获取oldbo;root则获取roo
name = "WitharusH"
print(name[0:-1])
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
Witharus
21、字符串是否可迭代对象?如可以请使用for循环每一个元素?
是;只要可执行for 循环就约等于可迭代对象
for item in "我最帅":print(item)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
我
最
帅
22、请用代码实现:
a.利用下划线将列表的每一个元素拼接成字符串,li="alexericrain"
li = "alexericrain"v="_".join(li)print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
a_l_e_x_e_r_i_c_r_a_i_n
v="_".join("alexericrain")print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
a_l_e_x_e_r_i_c_r_a_i_n
b.利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'](可选)
v="_".join(['alex','eric','rain'])print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
alex_eric_rain
23、Python2中的range和Python3中的range的区别?
2:在python2.7里面,range可以直接帮我们打印出来范围内的数字,这个就有缺点了,比如我打印出来1万个数字,它得先把一万个数字打印出来,这个时候我们得等着了。并且占用很多内存
若想和python3里的range效果相同 >>>>>>用 xrange
3:range创建之后,并不会把这些数字打印出来,而是在什么时候调用的时候才去一个一个的打印,比如for循环调用的时候才会挨个打印,这样就省内存了
#############################################
range(起始,终止,步长)
range(0,100,1)从0到100
range(100,0,-1)从100到0
#############################################
24、实现一个整数加法计算器:
如:
content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
content = input('请输入内容:') #input输入的值是字符串类型,先用split从‘+’号分隔出‘5’和‘9’ 再转换int类型做加法
v1, v2 = content.split('+')
v1=int(v1)
v2=int(v2)print(v1 + v2)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入内容: 5 + 9
14
25、计算用户输入的内容中有几个十进制小数?几个字母?
如:
content = input('请输入内容:') # 如:asduiaf878123jkjsfd-‐213928
num =0
zimu=0
content= input('请输入内容:')for item incontent:if item.isdigit() ==True:
num+= 1
elif item.isalpha() ==True:
zimu+= 1
else:pass
print('十进制数字共有:', num)print('字母共有:', zimu)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入内容: asdasdasdas-sda2165
十进制数字共有: 4
字母共有: 14
26、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
类和对象的关系
int str 是不同类
9 ”xxoo"是根据类所创造的对象
27、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
c = "帅气的{0},最喜欢{1}"a= input(">>>")
b= input(">>>")
v=c.format(a, b)print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
>>>Witharush
>>>Python
帅气的Witharush,最喜欢Python
28、制作随机验证码,不区分大小写。
流程:
-‐ 用户执行程序
-‐ 给用户显示需要输入的验证码
-‐ 用户输入的值
用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:
方法1: 先判断输入的字母是否为大写 若是 则判断 若不是 先转换成大写再判断
defcheck_code():importrandom
check_code= ''
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)
check_code+=str(temp)returncheck_codewhileTrue:
code=check_code()print(code)
v= input(">>>")if v.isupper() ==True:if v ==code:print('正确')break
else:print('错误')elif v.isupper() ==False:
v=v.upper()if v ==code:print('正确')break
else:print('错误')
View Code
方法2:2:直接把输入的字母改成大写的进行判断,省了近一半的判断代码
defcheck_code():importrandom
check_code= ''
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)
check_code+=str(temp)returncheck_codewhileTrue:
code=check_code()print(code)
v= input(">>>")
v=v.upper()if v ==code:print('正确')break
else:print('错误')
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
MPBN
>>>mpbn
正确
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
方法一
a = input(">>>")
a= a.replace("帅", "*")
a= a.replace("逼", "*")print(a)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
>>>Witharush大帅逼
Witharush大**
方法二
whileTrue:
name= input('请输入内容:')if "帅逼" in name inname:
v= name.replace('帅逼', '**')print(v)
exit()else:print(name)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入内容:witharush大帅逼
witharush大**
30、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
s = " "
whileTrue:
name= input("请输入名字")
password= input("请输入密码")
mail= input("请输入邮箱")
temp= "{0}\t{1}\t{2}\n"name1= name[0:20] #只输出前20个字符
password1 = password[0:20]
mail1= mail[0:20]
v=temp.format(name1, password1, mail1)
s= s +vif name == 'q' or name == 'Q':break
print(s.expandtabs(20))
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入名字a
请输入密码s
请输入邮箱d
请输入名字z
请输入密码x
请输入邮箱c
请输入名字q
请输入密码w
请输入邮箱e
a s d
z x c
q w e