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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python练习题(基础知识练习题)相关的知识,希望对你有一定的参考价值。

1.执行Python脚本的两种方式

(1).交互方式:启动python解释器,执行命令
(2).脚本方式:Python xxx.py 或者 chmod +x && ./xxx.py

2.简述位、字节的关系

一个二进制位是计算机里最小表示单元。
 
一个字节是计算机里最小存储单元。
 
二进制位=8bits=1Byte=1字节

3.简述ascii、unicode、uft-8、gbk的关系

美国制定了一套字符编码,对英语字符与二进制位之间的关系做了统一规定,这被称为ASCII码,由1个字节组成,最多支持2**8=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.Python单行注释和多行注释分别用什么?

单行注释:#要注释内容
多行注释:"""要注释内容""" 或者‘‘‘要注释内容‘‘‘

6.声明变量注意事项有哪些?

变量由数字、字母、下划线组成
变量不能以数字开头
变量不能使用关键字
变量区分大小写

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

#!/usr/bin/env python
#-*- encoding:utf-8 -*-

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)
View Code

执行结果:

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.请问,上一题l分割之后得到是什么类型(可选)?

#列表

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:]))

11.字符串是否可迭代?如可以请使用 for 循环每一个元素?

#可迭代对象==可以被for进行循环获取
name = "aleX"
for i in name:
print(i)

12.请用代码实现:

a.利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"

li = "alexericrain"
print(‘_‘.join(li))

b.利用下划线将列表的每一个元素拼接成字符串,li = [‘alex‘,‘eric‘,‘rain‘]

li = [‘alex‘,‘eric‘,‘rain‘]
print(‘_‘.join(li))

13.Python2中的range和Python3中的range的区别?

Python2中的range返回的是一个列表,直接创建内容
Python3中的range返回的是一个迭代值,只有for循环时,内容才一个一个创建

14.实现一个整数加法计算器:

如:
content = input(‘请输入内容:‘) #如:5+9

#方法一:
content = input(‘请输入内容:‘)
print(eval(content))

#方法二:
content = input(‘请输入内容:‘)  #5+9
n1,n2 = content.split(‘+‘)
n1 = int(n1)
n2 = int(n2)
print(n1+n2)

15.计算用户输入的内容中有几个十进制数?几个字母?

如:
content=input(‘请输入内容:‘) #如: asduiaf878123jkjsfd-213928

content = input(‘请输入内容:‘)
n = 0;s = 0
for i in range(len(content)):
# print(content[i])
if content[i].isdecimal():
n += 1
if content[i].isalpha():
s += 1
print(‘十进制数的数量:‘,n,‘字母的数量:‘,s)

16.简述int和9等数字以及str和"xxoo"等字符串的关系?

int,str 是类
0和"xxoo"是根据相应的类创建的对象

17.制作趣味模版程序

需求:等待用户输入名字、地点、爱好,更具用户的名字和爱好进行任意显示:
如:敬爱可亲的xxx,最喜欢在xxx地方干xxx

#方法一:
name = input(‘请输入名字:‘)
where = input(‘请输入地点:‘)
love = input(‘请输入爱好:‘)

print("敬爱可亲的%s,最喜欢在%s地方干%s" %(name,where,love))
#方法二:
name = input(‘请输入名字:‘)
where = input(‘请输入地点:‘)
love = input(‘请输入爱好:‘)

template = "敬爱可亲的{0},最喜欢在{1}地方干{2}"

print(template.format(name,where,love))

18.制作随机验证码,不区分大小写。

流程:
- 用户执行程序
- 给用户显示需要输入的验证码
- 用户输入的值
用户输入的值和显示的值相同时显示正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码事例:

技术分享
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)
View Code
#!/usr/bin/env python
# -*- encoding: utf8 -*-

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)
  app = input("请输入验证码:")
  if code.upper() == app.upper():
    print("输入正确")
    break
  else:
    print("输入错误")
    s = input("是否重新输入?")
    if s == "no":
        break
    else:
        continue

19.开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:

如“苍老师”“东京热”,则将内容替换为***

v = input(">>>")
v = v.replace("苍老师","***")
v = v.replace("东京热","***")
print(v)

20.制作表格

循环提示用户输入:用户名、密码、邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个字符有效)

如果用户输入q或Q表示不再继续输入,将用户输入的内容以表格形式显示。

#!/usr/bin/env python
# -*- encoding: utf8 -*-

s = ""
while True:
    name = input("用户名:")
    if name == "q" or name == "Q":
        break
    if len(name) >= 20:
        name = name[:20]
    passwd = input("密码:")
    if len(passwd) >= 20:
        passwd = passwd[:20]
    email = input("邮箱:")
    if len(email) >= 20:
        email = email[:20]
    template = "{0}\t{1}\t{2}\n"
    v = template.format(name, passwd, email)
    s += v

print(s.expandtabs(20))

 










以上是关于Python练习题(基础知识练习题)的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

老男孩python基础知识练习题中

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

Python 大量最最基础练习题

python基础知识和练习代码

Python基础练习题100例(Python 3.x)