Python练习题(基础知识练习题)

1、执行 Python 脚本的两种方式
交互模式:启动python解释器,执行脚本
脚本模式:python ***.py 或者 +x ***.py

2、简述位、字节的关系
一个二进制是计算机里最小的单元
一个字节是计算机中最小的存储单位
二进制 = 8bit = 1Byte =1字节

3、简述 ascii、unicode、utf-­‐8、gbk 的关系
美国制定了一套字符编码,对英语字符与二进制位之间的关系做了统一规定,这被称为ASCII码,由1个字节组成,最多支持28=256个字符
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,由2个字节组成,最多支持2
16=65536个字符
UTF-8最大的特点就是它是一种变长的编码方式,由1-6个字节组成,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
GBK是汉字国标扩展码,由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。Windows默认编码GBK,中文占2个字节。

4、请写出 “李杰” 分别用 utf-­‐8 和 gbk 编码所占的位数
UTF-8中一个英文占1个字节,一个中文占3个字节,此处“李杰”占6个字节。
GBK中一个中文占2个字节,此处“李杰”占4个字符。

5、Pyhton 单行注释和多行注释分别用什么?
单行注释: #
多行注释: “”“内容”"""或者’’‘内容’’’

6、声明变量注意事项有那些?
变量由下划线,字母,数字组成
变量不能以数字开头
变量不能使用关键字
变量区分大小写

7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
n1 = 5
v = int.bit_length(n1)
print(v)

8、布尔值分别有什么?
True False
“” => False #空字符串
“有内容” => True
0 => False
其他数字 => True

9、阅读代码,请写出执行结果a = “alex”
b = a.capitalize()
print(a)
print(b)

请写出输出结果:
alex
Alex(首字母大写其余全部小写)

10、写代码,有如下变量,请按照要求实现每个功能name = " aleX"

a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
print(name.strip())

b. 判断 name 变量对应的值是否以 “al” 开头,并输出结果
print(name.startswith(‘al’),name)

c. 判断 name 变量对应的值是否以 “X” 结尾,并输出结果
print(name.endswith(‘X‘),name)

d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
print(name.replace(‘l’,‘p’))

e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
print(name.split(‘l‘))

f. 请问,上一题 e 分割之后得到值是什么类型(可选)?
列表

g. 将 name 变量对应的值变大写,并输出结果
print(name.upper())

h. 将 name 变量对应的值变小写,并输出结果
print(name.lower())

i. 请输出 name 变量对应的值的第 2 个字符?
print(name[1])

j. 请输出 name 变量对应的值的前 3 个字符?
print(name[:3])

k. 请输出 name 变量对应的值的后 2 个字符?
print(name[-2:]) #-1代表最后一个字符,-2代表倒数第二个字符

l. 请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index(‘e‘))

m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
print(name.rstrip(name[-1:]))

21、字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
name = “alex”
for i in name:
print(i)

22、请用代码实现:
a. 利用下划线将列表的每一个元素拼接成字符串,li = “alexericrain”
print("_".join(li))

b. 利用下划线将列表的每一个元素拼接成字符串,li = [‘alex’, ‘eric’, ‘rain’] (可选)
print(’_’.join(li))
23、Python2 中的 range 和 Python3 中的 range 的区别?
python2中range返回的是一个列表,直接创建内容
python3中range返回的是一个迭代值,只有for循环时,内容才一个一个创建

24、实现一个整数加法计算器: 如:
content = input(‘请输入内容:’) # 如 : 5+9 或 5+ 9 或 5 + 9
content = input(‘请输入内容:‘)
print(eval(content))

25、计算用户输入的内容中有几个十进制小数?几个字母? 如:
content = input(‘请输入内容:’) # 如:asduiaf878123jkjsfd-­‐213928
content = input(‘请输入内容:’)
n = 0 ; s = 0
for i in range(len(content)):
if content[i].isdecimal():
n+=1
if content[i].isalpha():
s+=1
print(n,s)

26、简述 int 和 9 等数字 以及 str 和 “xxoo” 等字符串的关系?
int就是数字类型,str就是字符串类型,xxoo就是字符串
int str都是类,类型, 9 xxoo这些都是根据类创建的对象

27、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx

name = input(“请输入你的名字:”)
place = input(“请输入你经常去的地方:”)
like = input(“请输入你平时的爱好”)
print(‘猥琐的’,name,‘最喜欢在’,place,‘地方’,like)

28、制作随机验证码,不区分大小写。流程:
-­‐ 用户执行程序
-­‐ 给用户显示需要输入的验证码
-­‐ 用户输入的值
用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入生成随机验证码代码示例:

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
code = check_code()
while True:
code = check_code()
print (code)
v = input(‘请输入验证码>>>>’)
v1 = v.upper()
if v1 == code:
print (‘验证码正确’)
break
else:
pass

29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符: 如 “苍老师” “东京热”,则将内容替换为 ***
shuru = input(“请输入字符串”)
v = shuru.find(‘苍井空’)
v1 = shuru.find(‘东京热’)
if v == -1 and v1 == -1:
print (shuru)
elif v != -1 or v1 != -1:
shuru1 = shuru.replace(‘苍井空’,‘’)
shuru2 = shuru1.replace(‘东京热’,'
’)
print (shuru2)
else:
pass

30、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效) 如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
s = “”
while True:
v1 = input(‘请输入你的名字’)
v2 = input(‘请输入你的密码’)
v3 = input(‘请输入你的邮箱’)
v4 = v1[0:19]
v5 = v2[0:19]
v6 = v3[0:19]
test = “{0}\t{1}\t{2}\n”
v = test.format(v4, v5, v6)
b = v.expandtabs(20)
s = s + b
if v1 == “q” or v2 == “q” or v3 == “q” or v1 == “Q” or v2 == “Q” or v3 == “Q”:
break
print(s)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值