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
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 =04 for num innumber_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 =03 alpha_counter =04 for tmp incontent:5 iftmp.isalpha():6 alpha_counter += 1
7 eliftmp.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 insensitive_work:4 content = content.replace(word, "***")5
6 print(content)
输出结果
7.制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20个字符,如果超过则只有前 20个字符有效)
如果用户输入 q或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
测试代码如下
1 info_list =[]2 whileTrue: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 ininfo_list:27 print("%-20s%-20s%-20s" % (item["name"], item["pwd"], item["email"]))
代码说明:
1.通过字典info_dict保存用户输入的名字,密码和邮箱。截取每次输入的前20个字符[:21]
2.把每次整理好的字典放入到列表info_list中
3.检测输入为q或者Q则退出
4.循环获取列表中的各个字典进行格式化输出
输出结果