python基础知识测试题答案_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=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: 先判断输入的字母是否为大写 若是 则判断 若不是 先转换成大写再判断

ContractedBlock.gif

ExpandedBlockStart.gif

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

你可能感兴趣的:(python基础知识测试题答案)