Python练习题
1.执行Python脚本的两种方式
Python 1.py
./1.py
2.简述位与字节的关系
一个字节等于8位
3.简述ascii、unicode、utf-8、gbk的关系
ascii只能表示传统意义上的字符,一个字符是1个字节,8位,可表示256种字符
Unicode是万国码,定义2个字节代表一个字符,16位,共可表示65536种字符,缺点浪费空间
utf-8是Unicode的优化版,规定1个英文字符用一个字节,1个中文字符用3个字节表示,节省空间
gbk为表示中文诞生,一个中文字符用2个字节表示
4.请写出"李杰"分别用utf-8和gbk编码所占的位数
test = '李杰'
print(len(test)) #分别用utf-8和gbk编码
5.Python单行注释和多行注释分别用什么?
单行只是用#
多行注释用"""txt"""或者'''txt'''
6.声明变量注意事项有哪些?
变量名只能包含字母、数字、下划线,不能用数字开头,不能用关键词,不能用系统占用的
7.如有以下变量n1 = 5,请使用int的提供的方法,得到该变量最少可以用多少个二进制位表示?
n1 = 5
print(n1.bit_length())
8.布尔值分别有什么?
True False
9.阅读代码,请写出执行结果
a = 'alex'
b = a.capitalize()
print(a)
print(b)
执行结果:
alex
Alex #字符串魔法capitalize表示首字母大写
10.写代码,有如下变量,请按照要求实现每个功能
name = 'aleX'
a.移除name变量对应的值的两边的空格,并输出移除后的内容
name = ' aleX '
print(name.strip())
b.判断name变量对应的值是否以"al"开头,并输出结果
name = 'aleX'
print(name.startswith('al'))
c.判断name变量对应的值是否以"X"结尾,并输出结果
name = 'aleX'
print(name.endswith('X'))
d.将name变量对应的值中'l'替换为'p',并输出结果
name = 'aleX'
print(name.translate(name.maketrans('l', 'p')))
e.将name变量对应的值根据'l'分割,并输出结果
name = 'aleX'
print(name.split('l'))
f.请问,上一题e分割之后得到的值是什么类型
name = 'aleX'
print(type(name.split('l'))) #列表
g.将name变量对应的值变大写,并输出结果
name = 'aleX'
print(name.upper())
h.将name变量对应的值变小写,并输出结果
name = 'aleX'
print(name.lower())
i.请输出name变量对应的值的第2个字符
name = 'aleX'
print(name[1])
j.请输出name变量对应的值的前3个字符
name = 'aleX'
print(name[0:3])
k.请输出name变量对应的值的后2个字符
name = 'aleX'
print(name[-2:])
l.请输出name变量对应的值中'e'所在的索引位置
name = 'aleX'
print(name.find('e'))
m.获取子序列,仅不包含最后一个字符。如:oldboy则获取oldbo;root则获取roo
name = 'aleX'
print(name[:-1])
21.字符串是否可以迭代对象?如可以请使用for循环每一个元素
name = 'aleX'
for i in name:
print(i)
22.请用代码实现:
a.利用下划线将字符串的每个元素拼接成一个字符串,li = 'alexericrain'
li = 'alexericrain'
print('_'.join(li))
b.利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','rain']
li = ['alex', 'eric', 'rain']
print('_'.join(li))
23.Python2中的range和Python3中的range的差别。
Python2中的range会立即给分配内存空间
Python3中的range不会立即分配空间,只有当用到的时候才会分配
24.实现一个整数加法计算器:
如:content = input('请输入内容:') #如:5+9 或 5+ 9 或5 + 9
content = input('请输入内容:')
list1 = content.split('+')
var1 = int(list1[0])
var2 = int(list1[1])
print('结果是:', var1+var2)
25.计算用户输入的内容中有几个十进制小数?几个字母?
如:content = input('请输入内容:') # 如:asduiaf878123jkjsfd-213928
content = input('请输入内容:')
count1 = 0
count2 = 0
for i in content:
if i.isalpha():
count1 += 1
elif i.isdigit():
count2 += 1
print('字母的数量:', count1, '数字的数量:', count2)
26.简述int和9等数字的关系 以及 str和"xxoo"等字符串的关系
int包含所有数字,str包含所有字符串
27.制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
如:敬爱可亲的xxx,最喜欢在xxx地方干xxx
name = input('请输入名字:')
place = input('请输入地点:')
hobby = input('请输入爱好:')
print('敬爱可亲的', name, '最喜欢在', place, '干', hobby)
28.制作随机验证码,不区分大小写。
流程:
- 用户执行程序
- 给用户显示需要输入的验证码
- 用户输入的值
用户输入的值和显示相同时显示正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:
def check_code():
import random
checkcode = ''
for i in range(4):
current = random.randrange(4)
if current != i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
return checkcode
code = checkcode()
print(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 = random.randint(0, 9)
checkcode += str(temp)
return checkcode
code = check_code()
print('验证码为:', code)
usercode = input('请在此处输入验证码:')
while True:
if usercode == code:
print('输入正确!')
break
else:
code = check_code()
print('验证码为:', code)
usercode = input('请重新输入:')
continue
29.开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容包含特殊字符;
如:"苍老师""东京热",则将内容替换为 ***
content = input('请输入你的内容:')
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
li1 = content.replace('苍老师', '***')
li2 = li1.replace('东京热', '***')
li3 = li2.replace('武藤兰', '***')
li4 = li3.replace('波多野结衣', '***')
print(li4)
30.制作表格
循环提示用户输入:用户名、密码、邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个字符有效)
如果用户输入q和Q表示不再继续输入,将用户输入的内容以表格形式打印
嘿嘿嘿...