Python基础30道测试题(字符串相关)

‘’’
1.执行Python脚本的两种方法:
答: ①命令:python /home/xxx.py; ②cd /home ./xxx.py

2.阐述位、字节的关系:
答: 1Byte = 8bit 一个字节是8位
计算机处理是以字节为单位,存储是以位为单位

3.阐述ACII、Unicode、UTF-8、GBK的关系
答: Python默认脚本文件都是ACII编码
在一个module定义中,如果.py文件中含有中文字符,需要在文件首补充:
#--coding = utf-8 -- 或者 #coding = utf-8
其他的编码GBK,gb2312yekeyi
Unicode是一个字符集,UTF-8(字节可变)是Unicode(双字节)的一种,
如:汉字在Unicode中占2个字节,在UTF-8中占3个字节
ACII码是一种表示英文字符的一种编码规范
GBK专门用来解决中文编码,包含全部的中文字符,无论中英文都是双字节。在国家标准GB2312上扩展的兼容GB2312
4.请写出“李杰”用UTF-8和GBK编码所占的位数:
答: UTF-8中一个中文字符是3个字节,6;
GBK中一个中文字符是2个字节,4;
计算的是字符(Python3),计算的是字节(Python2)
5.Python的单行注释和多行注释:
答: 单行注释:#(快捷键:Ctrl+/)
多行注释:’’’ ‘’’

6.声明变量注意事项:
答: 和Java命名规范类似:
只能由数字、字母、下划线组成,不能由数字开头,不能使用Python关键字

7.如有变量n1 = 5,请使用int提供的方法,得到该变量最少可以有多少个二进制位组成:
答: n1 = 5
print (n1.bit_length())
还可以使用进制转换:bin(),oct(),hex(),并且返回(str)的结果带有0b,0o,0x

8.布尔值分别有什么:
答: True,False,not False

9.阅读下面代码,写出执行结果:
a = “alex”
b = a.capitalize()
print(a)
print(b)
答: alex,Alex

10.写代码,实现以下每个功能:
答:

name = "aleX "
    #移除name变量两边的空格,输出结果
    strip_result = name.strip()
    print (strip_result)
    # 判断是否是以"al"开头,输出结果
    print (name.startswith("al"))
    # 判断是否是以"X"结尾,输出结果
    print (name.endswith("X"))
    # 把name变量的"l"替换为"p",输出结果
    print (name.replace("l","p"))
    # 把name变量根据"l"分割,输出结果
    print (name.split("l"))
    # 把name变量根据"l"分割,输出结果的类型
    print (type(name.split("l")))
    # 把name变量变大写
    print (name.upper())
    # 把name变量变小写
    print (name.lower())
    # 把name变量小写对应变大写,大写变小写
    print (name.swapcase())
    # 输出name变量第2个字符
    print (name[1])
    # 输出name变量前3个字符
    print (name[:3])
    # 输出name变量的后2个字符
    print (name[-2:])
    #输出name变量"e"对应的下标
    print (name.find("e"))
    # 获取子序列,仅不包含最后一个字符。如oldboy获取oldbo
    print (name[:-1])

最后一个是-1,倒数第二个-2,倒数第三个-3 …依次列推
11.字符串是否是可迭代的对象?请用for循环每一个对象:
答:

name = "alex"
for item in range(0,len(name)):
    print (item,name[item])

12.代码实现一下功能
a.使用下划线将列表的么一个元素拼接成字符串,li = “alexericrain”
b.使用下划线将列表的么一个元素拼接成字符串,li = [“alex”,“eric”,“rain”]
答:
a.

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

b.

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

###########################len()和join()这两个方法对于所有的类型都可以用

13.Python2中的range和Python3中的range有什么区别?
答: Python2中range(100),会直接创建0-99这100个数字,导致内存空间突然之间变化,浪费内存。
Python3中range(100),会先生成range(0,100),等到使用range的时候才会创建数字,节省内存。

14.实现一个整数加法计算器:
如:content = input(“请输入内容”)
答:input_str = input(“请输入计算的加法式子>>>>”)

get_input_str = input_str.split("+")
result = 0
for item in range(len(get_input_str)):
    result += int(get_input_str[item])
print (result)

15.计算用户输入的内容中有几个十进制数字,几个字母?
如:content = input(“请输入内容”) #asduiaf878123jkjsfd-213928
答:input_str = input(“请输入任意内容:>>>”)

 num_sum = 0
    char_sum = 0
    for item in input_str:
        if item.isdecimal():
            num_sum += 1
        elif item.isalpha():
            char_sum += 1
        else:
            pass
    print ("一共有" + str(num_sum) + "个数字")
    print ("一共有" + str(char_sum) + "个字母")

16.简述int和9,str和"xxoo"之间的关系
答: 类和对象的关系,int和str是不同的类

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

 input_str = input("名字,地点,爱好:(请按照格式输入)")
    get_str = input_str.split(",")
    print ()
    print ("美丽的{}喜欢在{}学{}".format(get_str[0],get_str[1],get_str[2]))

18.制作随机验证码,不区分大小写
流程:
–用户执行程序
–显示需要输入的验证码
–用户输入验证码
–用户输入正确显示"Successfully login!",否则继续生成验证码等待用户输入
答:------随机验证码.py

import random
def main():
    check_code = ''
    for i in range(4):
        current = random.randrange(4)
        if current != i:
            temp = chr(random.randint(65,90))
        else:
            temp = random.randint(0,9)
        check_code += str(temp)
    print (check_code)
if __name__ == '__main__':
    main()

19.敏感词汇过滤程序,用户输入若有敏感词汇,则替换为"XXX"
答:

 get_input = input("请输入>>>")
    if "苍井空" in get_input:
        print (get_input.replace("苍井空","xxx"))

20.制作表格,循环提示用户输入:用户名、密码、邮箱(输入长度不超过20个字符)
如果用户输入q或Q则退出输入,并将用户输入的内容以表格形式输出
答:

print ("请输入姓名 密码 邮箱:(以空格分开)")
 get_input = input()
 if get_input != 'q' or get_input.upper() != 'Q':
        get_input_list = get_input.split(" ")
        get_output = get_input_list[0] + "\t" + get_input_list[1] + "\t" + get_input_list[2]
        get_input = input()
    print ("姓名\t密码\t邮箱".expandtabs(20))
    print (get_output.expandtabs(20))

‘’’

你可能感兴趣的:(Python基础30道测试题(字符串相关))