30道Python基础练习题(python基础训练题)

网友投稿 813 2022-09-22

30道Python基础练习题(python基础训练题)

30道Python基础练习题(python基础训练题)

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<<

数字个数 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

数字个数 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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用systemtap抓取ssh登录的用户名和密码
下一篇:2014找工作----扎实的基础和开阔的视野是企业最看重的因素
相关文章

 发表评论

暂时没有评论,来抢沙发吧~