【04】Python学习笔记:基础知识练习题(一)

基础知识练习题(一)

 

1. 执行Python脚本的两种方式
(1)命令行交互:将Python加入环境变量后,在cmd命令行输入python 文件路径即可。
   如:python C:\Users\CALL_ME_K\PycharmProjects\Python_FullStack\day10\day10_s1.py
(2)打开IDLE后,新建脚本,输入代码,完成保存,然后点击Run Module即可。
2. 简述位和字节的关系
   1 Byte = 8 bits
3. 简述ASCII、Unicode、UTF-8、GBK的关系
   ASCII(美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,一共有128个字符,主要用于显示现代英语和其他西欧语言。
   Unicode(统一码、万国码、单一码)是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
   UTF-8是一种针对Unicode的可变长度字符编码,UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
   GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。主要用于显示中文语言。
4. 请写出“李杰”分别用UTF-8和GBK编码所占的位数
   UTF-8编码中,英文使用1个字节(8位),中文使用3个字节(24位),故“李杰”一共使用48位。
   GBK编码中,中英文均使用2个字节(16位),故“李杰”一共使用32位。
5. Python中单行注释和多行注释分别用什么?
   单行注释用#,多行注释用'''
6. 声明变量注意事项有哪些?

   变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。
   变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
   不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
   变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
   慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;
   应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。
7. 如有以下变量n1 = 5,请使用int的提供的方法,得到该变量最少可以用多少个二进制位表示?
n1 = 5
print(n1.bit_length())

 

8. 布尔值分别有什么?
   True / False
9. 阅读代码,请写出执行结果
    
    a = 'alex'
    b = a.capitalize()
    print(a)
    print(b)
   请写出输出结果:
   alex
   ALEX
10. 写代码,有如下变量,请按照要求实现每个功能
    
    name = 'aleX'
    a.移除name变量对应的值两边的空格,并输出移除后的内容
    b.判断name变量对应的值是否以'al'开头,并输出结果
    c.判断name变量对应的值是否以'X'结尾,并输出结果
    d.将name变量对应的值中的'l'替换为'p'并输出结果
    e.将name变量对应的值根据'l'分割,并输出结果
       
    f.请问,上一题e分割之后得到值是什么类型(可选)?
    g.将name变量对应的值变大写,并输出结果
    h.将name变量对应的值变小写,并输出结果
    i.请输出name变量对应的值的第2个字符?
    j.请输出name变量对应的值的前3个字符?
    k.请输出name变量对应的值的后2个字符?
    l.请输出name变量对应的值中'e'所在索引位置?
    m.获取子序列,仅不包含最后一个字符。如:oldboy则获取oldbo; root则获取roo
name = 'aleX'
# a.移除name变量对应的值两边的空格,并输出移除后的内容
v1 = name.strip()
print(v1)
# b.判断name变量对应的值是否以'al'开头,并输出结果
v2 = name.startswith('al')
print(v2)
# c.判断name变量对应的值是否以'X'结尾,并输出结果
v3 = name.endswith('X')
print(v3)
# d.将name变量对应的值中的'l'替换为'p'并输出结果
v4 = name.replace('l','p')
print(v4)
# e.将name变量对应的值根据'l'分割,并输出结果
v5 = name.split('l')
print(v5)
# f.请问,上一题e分割之后得到值是什么类型(可选)?
# list的切片
# g.将name变量对应的值变大写,并输出结果
v6 = name.upper()
print(v6)
# h.将name变量对应的值变小写,并输出结果
v7 = name.lower()
print(v7)
# i.请输出name变量对应的值的第2个字符?
print(name[1])
# j.请输出name变量对应的值的前3个字符?
print(name[0:2])
# k.请输出name变量对应的值的后2个字符?
print(name[-2:])
# l.请输出name变量对应的值中'e'所在索引位置?
print(name.find('e'))
# m.获取子序列,仅不包含最后一个字符。如:oldboy则获取oldbo; root则获取roo
print(name[:-1])

 

21. 字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
test = 'Hello world'
for items in test:
    print(items)

 

22. 请用代码实现:
#     a.利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
li = "alexericrain"
v1 = '_'.join(li)
print(v1)
#     b.利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','rain']
li = ['alex','eric','rain']
v2 = '_'.join(li)
print(v2)

 

23. Python2中的range和Python3中的range的区别?
Python2中,调用range会直接在内存中创建数列
Python3中,调用range并不会立即生成数列,只有在真正调用该数列时,该数列才会被生成
24. 实现一个整数加法计算器:
    如:
   content = input('请输入内容:')    # 如:5+9 或5+  9 或  5  +  9  
content = input('请输入内容:')
v = content.split('+')
v1 = v[0].strip()
v2 = v[1].strip()
print(int(v1)+int(v2))

 

25. 计算用户输入的内容中有几个十进制小数?几个字母?
    如:
  content = input('请输入内容:')    # 如:asduiaf878123jkjsfd-213928
content = 'asduiaf878123jkjsfd-213928'
count1 = 0
count2 = 0
for items in content:
    if items.isdigit() == True:
        count1 = count1 + 1
    elif items.isalpha() == True:
        count2 = count2 + 1
    else:
        pass
print("十进制小数有%d个,字母有%d个" % (count1,count2))

 

26. 简述int和9等数字以及str和"xxoo"等字符串的关系?
    在Python3里,只有一种整数类型,即长整型int,可以进行大数运算,9在Python3里也是长整型
    str是字符串类型,字符串的索引从0开始,例如s = "xxoo",s[0]代指第一个x,s[2]代指第一个o。
27. 制作趣味模板程序
    需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实       
    如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
# content = input('请输入名字,地点和爱好:').split(' ')
content = ['小明','天桥','小花']
print('%s最喜欢在%s干%s' % (content[0],content[1],content[2]))

 

28. 制作随机验证码,不区分大小写。
    流程:
    - 用户执行程序
    - 给用户显示需要输入的验证码
    - 用户输入的值
    - 用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
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)
    content = input('请输入验证码:')
    if content == code:
        print('恭喜你输入正确!')
        break
    else:
        continue

 

29. 开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
    如"苍老师" "东京热",则将内容替换为***
content = input('请输入内容:')
f1 = content.find('苍老师')
f2 = content.find('东京热')
if f1 != -1:
    content = content.replace('苍老师','***')
if f2 != -1:
    content = content.replace('东京热','***')
print(content)

 

30. 制作表格  
    循环提示用户输入:用户名、密码、邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个字符有效)
    如果用户输入q或Q表示不再继续输入,将用户输入的内容以表格形式打印
while True:
    name = input('请输入用户名,不超过20个字符:')
    name = name[0:20]
    if name == 'q' or name == 'Q':
        break
    pwd = input('请输入密码:')
    if pwd == 'q' or pwd == 'Q':
        break
    mail = input('邮箱:')
    if mail == 'q' or mail == 'Q':
        break
    text = 'name\tpassword\tmail\t\n' + name + '\t' + pwd + '\t' + mail + '\t'
    print(text.expandtabs(20))

 

你可能感兴趣的:(Python学习1)