Python基础练习题1
1、执行 Python 脚本的两种方式
答:命令行执行、编辑器执行
2、简述位、字节的关系
答:字节byte 位:bit、1字节 = 8位
3、简述 ascii、unicode、utf-8、gbk 的关系
答:
ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符,
Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间,可以用在内存处理中,兼容了utf-8,gbk,ASCII,
utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的,
gbk 是中文的字符编码,用2个字节代表一个字符)
4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数
答:在UTF-8中一个英文占1个字节,一个中文占3个字节,此处“李杰”占6个字节GBK中一个中文占2个字节,此处“李杰”占4个字符。
Python3
Python2
5、Python 单行注释和多行注释分别用什么?
答:
单行注释 用#
多行注释用三个单引号或三个双引号 '''被注释的内容'''
6、声明变量注意事项有那些?
答:变量由数字、字母、下划线组成,不能数字开头、不能使用关键字、不能使用python内置
7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
答:3
8、布尔值分别有什么?
答:True False
9、阅读代码,请写出 执行结果a = "abcd"
b = a.capitalize()
print(a)
print(b)
请写出输出结果:
答:Abcd (capitalize)是首字母大写的函数
10、写代码,有如下变量,请按照要求实现每个功能 name = " aleX"
a.移除 name 变量对应的值两边的空格,并输入移除后的内容
答:aleX(strip)移除指定字符串
b.判断 name 变量对应的值是否以 "al" 开头,并输出结果
答:True (startswith) 以什么什么开始
c.判断 name 变量对应的值是否以 "X" 结尾,并输出结果
答:True (endswith) 以什么什么结尾
d.将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
答:apeX (replace) 将指定字符串替换为指定字符串
e.将 name 变量对应的值根据 “l” 分割,并输出结果。
答:['a', 'eX'] (split) 按照指定字符串进行分割不保留指定的字符串
('a', 'l', 'eX') (partition)按照指定字符串进行分割保留指定的字符串并分割成三部分
f.请问,上一题 e 分割之后得到值是什么类型(可选)?
答:列表,元组
g.将 name 变量对应的值变大写,并输出结果
答:ALEX (upper) 转换为大写
h.将 name 变量对应的值变小写,并输出结果
答:alex (lower) 转换为写
i.请输出 name 变量对应的值的第 2 个字符?
答:l (v = name[1])
j.请输出 name 变量对应的值的前 3 个字符?
答:ale (v = name[0:3])
k.请输出 name 变量对应的值的后 2 个字符?
答:eX (v = name[-2:])
l.请输出 name 变量对应的值中 “e” 所在索引位置?
答:2 (v = name.index(‘e’))
m.获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
答:le (v = name[1:3] )
21、字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
答:可以
test = 'testtest' for i in test: print(i)
22、请用代码实现:
A.利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
答:
li = "alexericrain" v = "_".join(li) print(v)
B.利用下划线将列表的每一个元素拼接成字符串,li = ['axx', 'eric', 'rain'] (可选)
答:
li = " ['axx', 'eric', 'rain']" i = li[3:7] v = '_'.join(i) print(v)
23、Python2 中的 range 和 Python3 中的 range 的区别?
答:
Python2中的range是直接存入内存中
python2中的range返回的是一个列表,直接创建内容
Python3中的range是需要配合for循环才会存入到内存中
python3中的range返回的是一个迭代值,只有for循环时,内容才一个一个创建
24、实现一个整数加法计算器如:content = input('请输入内容:') # 如 : 5+9 或 5+ 9 或 5 + 9
答:
第一种方法: i = input('请输入几加几:') value = i v1,v2 = value.split('+') v1 = int(v1) v2 = int(v2) print(v1+v2) 第二种方法: content = input('请输入内容:') print(eval(content)) #eval :将字符串str当成有效的表达式来求值并返回计算结果
25、计算用户输入的内容中有几个十进制小数?几个字母? 如:
content = input('请输入内容:') # 如:asduiaf878123jkjsfd-‐213928
答:
content = input('请输入内容:') n = 0 s = 0 for i in content: print(i) if i.isdecimal(): n += 1 if i.isalpha(): s += 1 print('十进制数的数量:', n, '字母的数量:', s)
26、简述 int 和 9 等数字以及str 和 "xxoo" 等字符串的关系?
答:int 和 str 都是类
9 是 int类的对象
Xxoo 是str类的对象
27、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
答:
template = '可敬的妈妈{0},最喜欢{1}' name = input('>>>') hobby = input('>>>') v = template.format(name,hobby) print(v)
28、制作随机验证码,不区分大小写。流程:
-‐ 用户执行程序
-‐ 给用户显示需要输入的验证码
-‐ 用户输入的值
用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入生成随机验证码代码示例:
答:
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('>>>') if v == code.lower(): print('验证码正确:',v) break else: print('验证码错误重新输入!')
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符: 如 "苍老师" "东京热",则将内容替换为 ***
答:
v = '仓老师,东京热,1231东京热231仓老师23' v = v.replace('仓老师','****') v = v.replace('东京热','****') print(v)
30、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效) 如果用户输入 q 表示不再继续输入,将用户输入的内容以表格形式大隐
答:
s = '' while True: v1 = input('>>') v2 = input('>>') v3 = input('>>') template = '{0} {1} {2} ' v = template.format(v1, v2, v3) s = s + v i = input('q退出>>') if i == 'q': break print(s.expandtabs(20))