python基础练习题30道

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

python基础练习题30道
1、执⾏python脚本的两种⽅式
答:1>可以在python /home/xxxx.py
2>cd /home ./xxxx.py 因为py脚本⾥⾯指定了python解释器的位置
2、简述位、字节的关系
答:1Byte(字节)=8bit(⼆进制位)
3、简述ascii、unicode、uft-8、gbk的关系
答:ascii 英⽂编码,8个⼆进制位代表⼀个字母,总共可以有2的8次⽅减去1个等于255个
gbk是中⽂编码,是⽤的16个⼆进制代表⼀个汉字,有点浪费空间
uft-8也是中⽂编码,也是⽤的16个⼆进制代表⼀个汉字,但是能⽤8位表⽰就⽤位了
4、请写出“李杰”分别⽤utf-8的gbk编码所占的位数
6 4
5、python单⾏注释和多⾏注释分别⽤什么?
答:单⾏注释⽤# 多⾏注释⽤""" """
6、声明变量注意事项有哪些?
答:变量 = "abc" 变量空格 = 空格双引号之间的字符就是变量,在调⽤的时候要⽤吧变量⽤括号括起来()
变量,只能由字母、数字、下划线组成
特例:不能以数字开头
python的关键字也不能使⽤
7、如有以下变量n1 = 5,请使⽤int提供的⽅法,得到该变量最少可以⽤多少个⼆进制位表⽰
答:
n1 = 5
v = n1.bit_length()
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
3
8、布尔值分别有什么?
答:True False
9、阅读代码,请写出执⾏结果
a = "gouguoqi"
b = a.capitalize()
print (a)
print (b)
结果是
gouguoqi
Gouguoqi
10、写代码,有如下变量,请按照要求实现每个功能
a.移除name变量对应值的两边的空格,并输出移除后的内容
name = " gouguoQ"
v = name.strip()
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py gouguoQ
b.判断name变量对应的值是否以"go"开头,并输出结果
name = " gouguoQ"
v = name.startswith('go')
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py False
c.判断name变量对应的值是否以"Q"结尾,并输出结果
name = " gouguoQ"
v = name.endswith('Q')
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py True
d.将name变量对应的值中的"o",替换为"p",并输出结果
name = " gouguoQ"
v = name.replace('g','p')
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py poupuoQ
e.将name变量对应的值根据"o"分割,并输出结果
name = " gouguoQ"
v = name.split('o')
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py [' g', 'ugu', 'Q']
f.请问上⼀题分割之后得到的值是什么类型(可选)
列表
g.将name变量对应的值变⼤写,并输出结果
name = " gouguoQ"
v = name.upper()
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py GOUGUOQ
h.将name变量对应的值变成⼩写,并输出结果
name = " gouguoQ"
v = name.lower()
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py gouguoq
i.请输出name变量对应的值的第⼆个字符?
name = " gouguoQ"
v = name[2]
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py o
j.请输出name变量对应的值的前三个字符
name = " gouguoQ"
v = name[0:3]
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
go
h.请输出name变量对应值的后2个字符
name = " gouguoQ"
v = name[-2:]
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
oQ
l.请输出name变量中的值"Q的索引的位置
name = " gouguoQ"
v = len(name)
for n in range(v):
if (name[n]) != "Q":
continue
else:
print (n,name[n])
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
7 Q
m.获取⼦序列,仅不包含最后⼀个字符,如:woaini则获取woain root则获取roo name = " gouguoQ"
print (name[0:-1])
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
gouguo
21、字符串是否可以迭代对象?如果可以请使⽤for循环每⼀个元素?
for n in"woaini":
print (n)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py w
o
a
i
n
i
只要能被for循环,这个值就是可迭代对象
#类,类型
str
各种⽅法
......
#对象,根据str类型创建⼀个对象,S1,在shell我们就叫变量
S1 = "gouguoqi"
22、请⽤代码实现
a.利⽤下划线将列表的每⼀个元素拼接成字符串 li = "gouguoqi"
li = "gouguoqi"
v = "_".join(li)
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py g_o_u_g_u_o_q_i
b.利⽤下划线将列表的每⼀个元素拼接成字符串 li = ['gou','guo','qi'] li = ['gou','guo','qi']
v = "_".join(li)
print (v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py gou_guo_qi
23、在python2和3中range有啥区别
在python2.7⾥⾯,range可以直接帮我们打印出来范围内的数字,这个就有缺点了,⽐如我打印出来1万个数字,它得先把⼀万个数字打印出来,这个时候我们得等着了。

并且占⽤很多内存
在python3⾥⾯,range创建之后,并不会把这些数字打印出来,⽽是在什么时候调⽤的时候才去⼀个⼀个的打印,⽐如我for循环调⽤的时候才会挨个打印,这样就省内存了
24、实现⼀个整数加法计算器:
如:
content = input("请输⼊内容:") 如:5+9或3+6或9008+2566
content = input('请输⼊内容:格式是5+9 7+9 3+7 ')
v = content.split('+') 先把输⼊的2个数字以+分割成2个字符串
n1 = int(v[0]) 把第⼀个数字转换成int类型
n2 = int(v[1]) 把第⼆个数字转换成int类型
n3 = n1 + n2
print (n1,'+',n2,'=',n3)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
请输⼊内容:格式是5+9 7+9 3+7 22+33
22 + 33 = 55
25.计算⽤户输⼊的内容中有⼏个⼗进制⼩数?⼏个字母?
如:
content = input ('请输⼊内容:') #如:adsffjjhb87902kdjhs-+9802jkl
思路是:定义2基数都是0,⼀个是字母的⼀个是数字的
把字符串挨个打印出来,打印出来⼀个,判断⼀个,如果是数字,就把数字的基数加⼀,如果是字母就把字母的基数加⼀,就不是数字也不是字母,就pass,最后打印出num zimu
content = input('请输⼊内容:计算⼗进制⼩数个数和字母个数 ')
num = 0
zimu = 0
for n in content:
if n.isdecimal() == True:
num+=1
# print ('数字个数 ',(num))
elif n.isalpha() == True:
zimu+=1
# print ('字母个数',zimu)
else:
pass
print ('数字个数 ',(num))
print ('字母个数',zimu)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
请输⼊内容:计算⼗进制⼩数个数和字母个数 56gou<<<ijh78
数字个数 4
字母个数 6
26、简述int和9等数字以及 str和"xxoo" 等字符串的关系?
int就是数字类型,str就是字符串类型,xxoo就是字符串
int str都是类,类型, 9 xxoo这些都是根据类创建的对象
27、制作趣味模板程序
需求:等待⽤户输⼊名字、地点、爱好、根据⽤户的名字和爱好进⾏任意显⽰如:敬爱可亲的xxxx,最喜欢在xxxx地⽅⼲xxxx
name = input("请输⼊你的名字: ")
place = input("请输⼊你经常去的地⽅: ")
like = input("请输⼊你平时的爱好: ")
print ('猥琐的',name,',','最喜欢在',place,'地⽅',like)
test = "猥琐的{0},最喜欢在{1}地⽅⼲{2}"
name = input("请输⼊你的名字: ")
place = input("请输⼊你经常去的地⽅: ")
like = input("请输⼊你平时的爱好: ")
v = test.format(name,place,like)
print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
请输⼊你的名字: 修电脑
请输⼊你经常去的地⽅: ⽹吧
请输⼊你平时的爱好: 撸管
猥琐的修电脑,最喜欢在⽹吧地⽅⼲撸管
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()
print(code)
解答:
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
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
TGHM
请输⼊验证码>>>>dfgh
AEP5
请输⼊验证码>>>>aep5
验证码正确
29、开发敏感词语过滤程序,提⽰⽤户输⼊内容,如果⽤户输⼊的内容中包含特殊的字符:
如 "苍井空" "东京热" 则将内容替换为***
思路是:创建2个变量v1 v2,⽤find⽅法来判断⽤户输⼊的字符串⾥⾯是否有敏感词,有的话find的值就不是-1,只有find的值是-1的时候才是没有敏感词的
然后⽤if判断,如果2个值都等于-1,才证明不包含定义的2个敏感词,就正常打印,如果包含⼀个敏感词或者是包含2个敏感词都包含,就执⾏替换的操作
替换操作思路是,先替换苍井空。

替换完成之后,给它赋值⼀个新的变量名字,再把新的变量⾥⾯的东京热再次替换下,最后打印出来最后的变量就是2者都替换过了的结果
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)
# elif v1 != -1:
# shuru.replace('东京热','*****')
# shuru1 = shuru.replace('东京热','*****')
# print (shuru1)
else:
pass
C:\python35\python3.exe D:/pyproject/day11数据类型的⽅法/str-way.py
请输⼊字符串打算发松岛枫ppp34324苍井空了。

东京热了
打算发松岛枫ppp34324*****了。

*****了
⽤in来实现其实更简单些,代码如下
如果有敏感词的话就题把敏感词替换成*****并且赶紧退出,没有敏感词的话可以继续输⼊
while True:
name = input('请输⼊内容:')
if"苍井空"in name or"东京热"in name:
v = name.replace('苍井空', '*****')
v1 = v.replace('东京热', '*****')
print(v1)
exit()
else:
print(name)
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)
请输⼊你的名字q
请输⼊你的密码ww
请输⼊你的邮箱ee
aa bb cc
dd dd dd
ff ff ff
q ww ee。

相关文档
最新文档