Python基本类型练习题
1.写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
A. 移除name变量对应的值两边的空格,并输出移除后的内容
B. 判断 name变量对应的值是否以 "al" 开头,并输出结果
C. 判断 name变量对应的值是否以 "X" 结尾,并输出结果
D. 将 name变量对应的值中的 “l” 替换为 “p”,并输出结果
E. 将 name变量对应的值根据 “l” 分割,并输出结果。
F. 将 name变量对应的值变大写,并输出结果
G. 将 name变量对应的值变小写,并输出结果
H. 请输出 name变量对应的值的第 2个字符
I. 请输出 name变量对应的值的前 3个字符
J. 请输出 name变量对应的值的后 2个字符
K. 请输出name变量对应的值中 “e” 所在索引位置
测试代码如下
1 name = " aleX" 2 3 # 输出原始字符串 4 print("original name=", name) 5 6 # A. 移除name变量对应的值两边的空格,并输出移除后的内容 7 print("A:", name.strip()) 8 9 # B. 判断 name变量对应的值是否以 "al" 开头,并输出结果 10 print("B:", name.startswith("al")) 11 12 # C. 判断 name变量对应的值是否以 "X" 结尾,并输出结果 13 print("C:", name.endswith("X")) 14 15 # D. 将 name变量对应的值中的 “l” 替换为 “p”,并输出结果 16 print("D:", name.replace("l", "p")) 17 18 # E. 将 name变量对应的值根据 “l” 分割,并输出结果。 19 print("E:", name.split("l")) 20 21 # F. 将 name变量对应的值变大写,并输出结果 22 print("F:", name.upper()) 23 24 # G. 将 name变量对应的值变小写,并输出结果 25 print("G:", name.lower()) 26 27 # H. 请输出 name变量对应的值的第 2个字符 28 print("H:", name[1]) 29 30 # I. 请输出 name变量对应的值的前 3个字符 31 print("I:", name[0:3]) 32 33 # J. 请输出 name变量对应的值的后 2个字符 34 print("J:", name[-2:]) 35 36 # K. 请输出name变量对应的值中 “e” 所在索引位置 37 print("K:", name.find("e")) 38 39 # L. 获取子序列,仅不包含最后一个字符 40 print("L:", name[:-1])
输出结果
结果说明:
B.输出结果为False是因为字符串是以“空格al”打头,并不是“al”打头
E.split函数以“l”为分隔符把字符串分为了两部分,并且把结果作为列表返回,作为分隔符的“l”将不作为返回的结果
H.Python索引从0开始,第二个字符索引为1,索引为0的字符是空格,索引为1的字符就是a
I.前3个字符是“空格al”
J.字符串分片,Python支持索引为负数,[-2:]表示从倒数第2个字符到字符串结束,也就是最后两个字符
K.在字符串“空格aleX”中,字符e是第4个字符,由于索引从0开始,因此e的索引值就是3
L.字符串分片,[:-1]表示0个字符开始,直到最后一个字符,单不包含最后一个字符
分片的区间补充说明[num1:num2],区间取值前闭后开,对应于数学上的取范围为表示[num1,num2),即大于等于num1,小于num2。(num1<=num<num2)
2.请用代码实现:
A. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
B. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']
测试代码如下
1 li = "alexericrain" 2 print("A:") 3 print("_".join(li)) 4 5 li = ['alex', 'eric', 'rain'] 6 print("B:") 7 print("_".join(li))
输出结果
3.实现一个整数加法计算器:
如: content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
测试代码如下
1 content = input("请输入一个加法表达式>>>") 2 number_list = content.strip().split("+") 3 result = 0 4 for num in number_list: 5 result += int(num) 6 7 print("result=", result)
代码说明:
本人初学者,因此没有在代码中对输入信息做异常判断和处理
1)首先使用content接收input函数的输入,输入信息会被转换成字符串保存在变量content中
2)使用strip函数把输入字符串中的所有空格去除,即把“5 + 9”等字符串变成没有空格“5+9”
3)使用split("+")把上面处理过后的字符串“5+9”根据加号切割成多个部分,使用number_list变量来保存返回的列表信息
4)使用for遍历number_list中的元素,由于经过split函数处理后的列表中每个元素都是字符串,需要使用int()来转换成整形,才能做加法,依次把元素取出,转成整形,与上次的结果相加,最后达到所有元素的结果
5)本测试代码支持多个数的连续相加(不止两个数)
输出结果
4.计算用户输入的内容中有几个十进制数字?几个字母?
如: content = input('请输入内容:') # 如:asduiaf878123jkjsfd-213928
测试代码如下
1 content = input("请随意输入一串字符数字>>>") 2 number_counter = 0 3 alpha_counter = 0 4 for tmp in content: 5 if tmp.isalpha(): 6 alpha_counter += 1 7 elif tmp.isdecimal(): 8 number_counter += 1 9 10 print("字母数量:", str(alpha_counter)) 11 print("数字数量:", str(number_counter))
输出结果
结果说明:
输入中的“-”字符不被算做字母,也不被算做十进制数字
5.制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
测试代码如下
1 name = input("输入名字>>>") 2 addr = input("输入地点>>>") 3 hobby = input("输入爱好>>>") 4 5 print("敬爱可亲的%s,最喜欢在%s%s" % (name, addr, hobby)) 6 print("敬爱可亲的{},最喜欢在{}{}".format(name, addr, hobby))
代码说明:
代码中使用了两种格式化字符串的方法,分别是%和format,最终得到的字符串相同
输出结果
6.开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如 "苍老师" "东京热",则将内容替换为 ***
测试代码如下
1 sensitive_work = ("苍老师", "东京热") 2 content = input("请输入一个句子>>>") 3 for word in sensitive_work: 4 content = content.replace(word, "***") 5 6 print(content)
输出结果
7.制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20个字符,如果超过则只有前 20个字符有效)
如果用户输入 q或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
测试代码如下
1 info_list = [] 2 while True: 3 name = input("请输入名字(输入q或者Q退出)>>>") 4 if (name.lower() == "q"): 5 break; 6 else: 7 name = name[:21] 8 9 pwd = input("请输入密码(输入q或者Q退出)>>>") 10 if (pwd.lower() == "q"): 11 break; 12 else: 13 pwd = pwd[:21] 14 15 email = input("请输入邮箱(输入q或者Q退出)>>>") 16 if (email.lower() == "q"): 17 break; 18 else: 19 email = email[:21] 20 21 info_dict = {"name": name, "pwd": pwd, "email": email} 22 info_list.append(info_dict) 23 24 print("%-20s%-20s%-20s" % ("Name", "Password", "Email")) 25 26 for item in info_list: 27 print("%-20s%-20s%-20s" % (item["name"], item["pwd"], item["email"]))
代码说明:
1.通过字典info_dict保存用户输入的名字,密码和邮箱。截取每次输入的前20个字符[:21]
2.把每次整理好的字典放入到列表info_list中
3.检测输入为q或者Q则退出
4.循环获取列表中的各个字典进行格式化输出
输出结果