Python每日一练
问题:
编写一个Python程序来判断两个给定的字符串是否是错位词。
如果两个字符串具有相同的字符,但顺序不同,则被认为是彼此的错位词。 例如,restful和fluster是错位词。
定义函数are_anagrams(),有两个参数:string1和string2。
在函数内,如果两个字符串是错位词,则返回True,否则返回False。
该程序不区分大小写,并忽略字符串中的任何空格。 例如,Listen和silent也是错位词。
题目来源:PythonTip
https://edu.py2fun.com/
代码实现
代码如下(示例):
def are_anagrams(string1, string2):
# 此处编写代码
string1 = string1.lower().replace(' ', '') # 题目要求忽略大小写和空格
string2 = string2.lower().replace(' ', '') # 使用字符串内置函数先将字符串一律转换为小写,然后将空格去除
l1 = [] # 定义一个空列表
l2 = []
if len(string1) == len(string2): # 根据错位词的定义 它们的长度一定相等,否则直接返回False
for j in string2: # 把字符串2的每一个字符存入之前定义的空列表
l1.append(j)
for i in string1: # 把字符串1的字符拿出来与字符串2字符一一对比
if i not in l1: # 但凡字符串1中的字母有一个与字符串2的不同,返回False
return False
for j in string1: # 把字符串1的每一个字符存入之前定义的空列表
l2.append(j)
for i in string2: # 把字符串2的字符拿出来与字符串1字符一一对比
if i not in l2: # 但凡字符串2中的字母有一个与字符串1的不同,返回False
return False
else:
return False
return True # 上面的操作都执行完毕还没有返回False,那一定是错位词了
# 获取输入string1 和 string2
string1 = input()
string2 = input()
# 调用函数并打印结果
print(are_anagrams(string1, string2))
示例输入:
Listen
Silent示例输出:
True
总结
Python内置函数实现字符串去空格的方法有两种,一种就是上文提到的string.replace(),该方法能去除字符串任何地方的空格,当然它不仅仅能实现去空格,还可替换一些其他的字符串,使用方法如下:
string ="hello,world!"
print(string.replace("hello","你好"))
示例输出:
你好,world
另一种去空格的方法就是string.strip(),可以用来去除字符串开头和结尾的空格。例如,以下代码将使用strip()方法去除字符串开头和结尾的空格:
string =" he llo,world! "
print(string.strip())
示例输出:
he llo,world!