Python基础知识练习题
Posted Witharush
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础知识练习题相关的知识,希望对你有一定的参考价值。
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=5
v=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:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
WitharusH
b.判断name变量对应的值是否以"wi" 开头,并输出结果
name = " WitharusH" v = name.startswith(‘Wi‘) #判断字符串以什么开头 print(v)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
True
c.判断name变量对应的值是否以 "H" 结尾,并输出结果
name = " WitharusH" v = name.endswith(‘H‘) print(v)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
True
d.将name变量对应的值中的“i”替换为 “p”,并输出结果
name = " WitharusH" v = name.replace(‘i‘,‘p‘) print(v)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
WptharusH
e.将name变量对应的值根据 “r” 分割,并输出结果。
name = " WitharusH" v = name.split(‘r‘) print(v)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
[‘ Witha‘, ‘usH‘]
f.请问,上一题 e 分割之后得到值是什么类型(可选)?
列表
g.将name变量对应的值变大写,并输出结果
name = " WitharusH" v = name.upper() print(v)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
WITHARUSH
h.将name变量对应的值变小写,并输出结果
name = " WitharusH" v = name.lower() print(v)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
witharush
i.请输出name变量对应的值的第2个字符?
name = " WitharusH" print(name[1]) #第二个字符是下标为1的字符
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
W
j.请输出name变量对应的值的前3个字符?
方法一:
name=" WitharusH" n=0 while n <3: print(name[n]) n=n+1
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
W
i
方法二:
name=" WitharusH" print(name[0:3]) #切片
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
Wi
k.请输出name变量对应的值的后2个字符?
name=" WitharusH" print(name[-2:])
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
sH
l.请输出name变量对应的值中“r”所在索引位置?
name = " WitharusH"
for item in range(len(name)):
if name[item] == "r":
print(name[item], item)
else:
pass
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
r 6
m.获取子序列,仅不包含后一个字符。如:oldboy则获取oldbo;root则获取roo
name = " WitharusH" print(name[0:-1])
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
Witharus
21、字符串是否可迭代对象?如可以请使用for循环每一个元素?
是;只要可执行for 循环就约等于可迭代对象
for item in "我最帅": print(item)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
我
最
帅
22、请用代码实现:
a.利用下划线将列表的每一个元素拼接成字符串,li="alexericrain"
li = "alexericrain" v="_".join(li) print(v)
D:PyProjectday11venvScriptspython.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:PyProjectday11venvScriptspython.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:PyProjectday11venvScriptspython.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:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
请输入内容: 5 + 9
14
25、计算用户输入的内容中有几个十进制小数?几个字母?
如:
content = input(‘请输入内容:‘) # 如:asduiaf878123jkjsfd--‐213928
num = 0 zimu = 0 content = input(‘请输入内容: ‘) for item in content: if item.isdigit() == True: num += 1 elif item.isalpha() == True: zimu += 1 else: pass print(‘十进制数字共有: ‘, num) print(‘字母共有: ‘, zimu)
D:PyProjectday11venvScriptspython.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:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
>>>Witharush
>>>Python
帅气的Witharush,最喜欢Python
28、制作随机验证码,不区分大小写。
流程:
--‐ 用户执行程序
--‐ 给用户显示需要输入的验证码
--‐ 用户输入的值
用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:
方法1: 先判断输入的字母是否为大写 若是 则判断 若不是 先转换成大写再判断
def check_code():
import random
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)
return check_code
while True:
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(‘错误‘)
方法2:2:直接把输入的字母改成大写的进行判断,省了近一半的判断代码
def check_code(): import random 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) return check_code while True: code = check_code() print(code) v = input(">>>") v = v.upper() if v == code: print(‘正确‘) break else: print(‘错误‘)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
MPBN
>>>mpbn
正确
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
方法一
a = input(">>>") a = a.replace("帅", "*") a = a.replace("逼", "*") print(a)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
>>>Witharush大帅逼
Witharush大**
方法二
while True: name = input(‘请输入内容:‘) if "帅逼" in name in name: v = name.replace(‘帅逼‘, ‘**‘) print(v) exit() else: print(name)
D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
请输入内容:witharush大帅逼
witharush大**
30、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
s = " " while True: name = input("请输入名字") password = input("请输入密码") mail = input("请输入邮箱") temp = "{0} {1} {2} " name1 = name[0:20] #只输出前20个字符 password1 = password[0:20] mail1 = mail[0:20] v = temp.format(name1, password1, mail1) s = s + v if name == ‘q‘ or name == ‘Q‘: break print(s.expandtabs(20))
D:PyProjectday11venvScriptspython.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
以上是关于Python基础知识练习题的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段