Python基础(二)

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.循环获取列表中的各个字典进行格式化输出

输出结果

 

 

posted @ 2019-07-02 14:38  纯情小浩浩  阅读(439)  评论(0编辑  收藏  举报