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

 

猜你喜欢

转载自www.cnblogs.com/witharush/p/9383806.html