Python基础知识练习题(一)



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

 
    python解释器 python 1.py


  2、简述位、字节的关系


    8 bits = 1 byte (8位一字节)
    计算机处理以字节(byte)为单位
    存储以位(bit)为单位


  3、简述ascii、unicode、utf-­‐8、gbk的关系

  ascii 英文编码,8个二进制位代表一个字母,总共可以有2的8次方减去1个等于255个

  gbk是中文编码,是用的16个二进制代表一个汉字,有点浪费空间

  uft-8也是中文编码,也是用的16个二进制代表一个汉字,但是能用8位表示就用位了


  4、请写出“李杰”分别用utf-­‐8和gbk编码所占的位数 
    utf-8:6
    gbk:4

   a="李杰"
    python3:
    len(a) >>>>输出:李 杰 2个字符

    python2:
    len(a) >>>输出:六个乱码 6个字节


  5、Pyhton单行注释和多行注释分别用什么?
     单行: #

    多行: ''' ''' or """ """

 

6、声明变量注意事项有那些?


  声明:变量只能由字母、下划线、数字组成,且数字不能开头
   尽量不适用python内置的名字(sum,class。。。。。)


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

a=5 v=int.bit_length(a) print(v)

 


8、布尔值分别有什么?


    True   False

 "" >>>False     "有内容" >>> True


 0 >>>False    其他 >>>True

######################################
  a = 123 b="i"
  bool(a) bool(b) >>>>>>布尔值

######################################
 类型转换: new = 要转换类型(old)
 例: 字符串转换为数字

#字符串转换成数字 其他类型转换方式相同
a="123" b=int(a) 

 


9、阅读代码,请写出执行结果


  a = "alex"
  b = a.capitalize()
  print(a)
  print(b)
 请写出输出结果:
  "alex"
  "Alex"

 

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

a.移除name变量对应的值两边的空格,并输出移除后的内容

    name = " WitharusH" v = name.strip()  #清楚字符串中左右两边的空格 中间的无法去除 
    print(name)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py


WitharusH

b.判断name变量对应的值是否以"wi" 开头,并输出结果

name = " WitharusH" v = name.startswith('Wi')     #判断字符串以什么开头
print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
True

c.判断name变量对应的值是否以 "H" 结尾,并输出结果

name = " WitharusH" v = name.endswith('H') print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
True

d.将name变量对应的值中的“i”替换为 “p”,并输出结果

name = " WitharusH" v = name.replace('i','p') print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
 WptharusH

e.将name变量对应的值根据 “r” 分割,并输出结果。

name = " WitharusH" v = name.split('r') print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
[' Witha', 'usH']

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

   列表

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

name = " WitharusH" v = name.upper() print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
 WITHARUSH

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

name = " WitharusH" v = name.lower() print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
 witharush

i.请输出name变量对应的值的第2个字符?

name = " WitharusH"
print(name[1])  #第二个字符是下标为1的字符

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
W

j.请输出name变量对应的值的前3个字符?

  方法一:

name=" WitharusH" n=0 while n <3: print(name[n]) n=n+1

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py

W
i

  方法二:

name=" WitharusH"
print(name[0:3])    #切片

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
 Wi

k.请输出name变量对应的值的后2个字符?

name=" WitharusH"
print(name[-2:])

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
sH

l.请输出name变量对应的值中“r”所在索引位置?

name = " WitharusH"
for item in range(len(name)): if name[item] == "r": print(name[item], item) else: pass

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
r 6

 m.获取子序列,仅不包含后一个字符。如:oldboy则获取oldbo;root则获取roo

name = " WitharusH"
print(name[0:-1])

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
 Witharus

21、字符串是否可迭代对象?如可以请使用for循环每一个元素?

  是;只要可执行for 循环就约等于可迭代对象

for item in "我最帅":   print(item)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py


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

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

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py

a_l_e_x_e_r_i_c_r_a_i_n

v="_".join("alexericrain") print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
a_l_e_x_e_r_i_c_r_a_i_n

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

v="_".join(['alex','eric','rain']) print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
alex_eric_rain

23、Python2中的range和Python3中的range的区别?  

  2:在python2.7里面,range可以直接帮我们打印出来范围内的数字,这个就有缺点了,比如我打印出来1万个数字,它得先把一万个数字打印出来,这个时候我们得等着了。并且占用很多内存

        若想和python3里的range效果相同   >>>>>>用 xrange 
  3:range创建之后,并不会把这些数字打印出来,而是在什么时候调用的时候才去一个一个的打印,比如for循环调用的时候才会挨个打印,这样就省内存了

  #############################################

  range(起始,终止,步长)
  range(0,100,1) 从0到100
  range(100,0,-1) 从100到0

  #############################################

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

content = input('请输入内容:')  # input输入的值是字符串类型,先用split从‘+’号分隔出‘5’和‘9’ 再转换int类型做加法
v1, v2 = content.split('+') v1 = int(v1) v2 = int(v2) print(v1 + v2)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入内容: 5 + 9
14

25、计算用户输入的内容中有几个十进制小数?几个字母?
    如:
        content  =  input('请输入内容:')    #  如:asduiaf878123jkjsfd-­‐213928  

num = 0 zimu = 0 content = input('请输入内容: ') for item in content: if item.isdigit() == True: num += 1
    elif item.isalpha() == True: zimu += 1
    else: pass
print('十进制数字共有: ', num) print('字母共有: ', zimu)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入内容: asdasdasdas-sda2165
十进制数字共有: 4
字母共有: 14

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

  类和对象的关系
  int str 是不同类
  9 ”xxoo"是根据类所创造的对象

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

c = "帅气的{0},最喜欢{1}" a = input(">>>") b = input(">>>") v = c.format(a, b) print(v)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
>>>Witharush
>>>Python
帅气的Witharush,最喜欢Python

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

 

  方法1: 先判断输入的字母是否为大写 若是 则判断  若不是 先转换成大写再判断

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 while True: code = check_code() print(code) v = input(">>>") if v.isupper() == True: if v == code: print('正确') break
        else: print('错误') elif v.isupper() == False: v = v.upper() if v == code: print('正确') break
        else: print('错误')
View Code

  方法2:2:直接把输入的字母改成大写的进行判断,省了近一半的判断代码

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 while True: code = check_code() print(code) v = input(">>>") v = v.upper() if v == code: print('正确') break
    else: print('错误')

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
MPBN
>>>mpbn
正确

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

方法一

a = input(">>>") a = a.replace("", "*") a = a.replace("", "*") print(a)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
>>>Witharush大帅逼
Witharush大**

方法二

while True: name = input('请输入内容:') if "帅逼" in name in name: v = name.replace('帅逼', '**') print(v) exit() else: print(name)

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入内容:witharush大帅逼
witharush大**

 

 

30、制作表格  
    循环提示用户输入:用户名、密码、邮箱  (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
    如果用户输入  q 或 Q  表示不再继续输入,将用户输入的内容以表格形式打印

s = " "
while True: name = input("请输入名字") password = input("请输入密码") mail = input("请输入邮箱") temp = "{0}\t{1}\t{2}\n" name1 = name[0:20]          #只输出前20个字符
    password1 = password[0:20] mail1 = mail[0:20] v = temp.format(name1, password1, mail1) s = s + v if name == 'q' or name == 'Q': break
print(s.expandtabs(20))

D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
请输入名字a
请输入密码s
请输入邮箱d
请输入名字z
请输入密码x
请输入邮箱c
请输入名字q
请输入密码w
请输入邮箱e
a s d
z x c
q w e

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM