跳转至

字符串处理

7-1 产生每位数字相同的n位数
a, b_str = input().split(",")  # 1  
a = a.strip(" ")  # 2  
b = int(b_str)  # 3  
print(a * b)  # 4

  1. a, b_str = input().split(",")
  2. input() 函数用于获取用户的输入,返回一个字符串。
  3. .split(",") 方法将这个字符串按照逗号 , 分割成一个列表。
  4. a, b_str = ... 是将分割后的列表中的两个元素分别赋值给变量 ab_str。这里使用 b_str 而不是 b 是为了避免与内置的 int 函数中的 b 参数混淆。
  5. a = a.strip(" ")
  6. .strip(" ") 方法用于移除字符串 a 两侧的所有空格(包括制表符、换行符等,但在这个例子中我们只指定了空格)。
  7. 这样做可以确保即使用户在输入时不小心在 a 的两侧添加了空格,这些空格也会被去除,不会影响后续的操作。
  8. b = int(b_str)
  9. int() 函数用于将字符串 b_str 转换为整数。
  10. 这样做是为了确保 b 是一个整数,因为字符串与整数之间不能直接进行乘法运算。
  11. print(a * b)
  12. 这里使用了字符串的乘法运算。在Python中,字符串与整数相乘会返回一个新的字符串,该字符串是原字符串重复整数次得到的。
  13. 例如,如果 a = "hello" 并且 b = 3,那么 a * b 的结果将是 "hellohellohello"
  14. print() 函数用于输出这个重复后的字符串。

7-3 号码牌的制作
a = input()  # 从用户处获取一个字符串并赋值给变量a  

s1 = a[0]    # 获取字符串a的第一个字符,并赋值给s1  
s2 = a[1]    # 获取字符串a的第二个字符,并赋值给s2  
s3 = a[2]    # 获取字符串a的第三个字符,并赋值给s3  

# 注意:这里使用strip()方法的目的是移除字符串开头和结尾的指定字符。  
# 但如果s1、s2、s3中有任何一个是字符串中的一部分(非边界字符),则strip()不会移除它们。  
num = a.strip(s1 + s2 + s3)  # 移除字符串a开头和结尾的s1、s2、s3字符,赋值给num  

len_num = len(num)  # 获取num的长度,并将值赋给新变量len_num  

# 打印第一个字符串:s1 + s2重复len_num次 + s1  
print(s1 + s2 * len_num + s1)  

# 打印第二个字符串:s3 + num(即处理后的字符串) + s3  
print(s3 + num + s3)  

# 打印第三个字符串:与第一个字符串相同  
print(s1 + s2 * len_num + s1)

7-4 统计指定数字和
a = input()  # 这一步从用户处获取一个字符串,并存储在变量a中。  
b = input()  # 这一步从用户处再次获取一个字符串,并存储在变量b中  
c = 0  # 这一步将变量c初始化为0,用于存储后面计算的结果(如果b是a的子串的话)。  

if b in a:  # 这一步检查字符串b是否是字符串a的子串。  
    c = a.count(b)  # 如果b是a的子串,则计算b在a中出现的次数,并将这个值赋给c。  

b = int(b)  # 这一步尝试将字符串b转换为整数。但这里有一个潜在的问题:如果b不是一个有效的整数表示(比如它包含字母或特殊字符),则这里会抛出一个ValueError异常。  
print(b * c)  # 这一步打印b(现在是一个整数)与c(b在a中出现的次数,或者如果b不是a的子串则为0)的乘积。


7-5 字符串消除空格
# 读取用户输入的字符串  
input_string = input()  

# 使用空格将字符串分割成一个列表  
split_list = input_string.split()  

# 将列表中的字符串元素连接成一个没有空格的新字符串  
joined_string = "".join(split_list)  

# 打印连接后的字符串  
print(joined_string)

7-6 判断字符串头尾结构
# 获取用户输入  
a = input()  

# 判断并打印结果  
if a == a[::-1]:  
    print("yes")  
else:  
    print("no")
我们直接使用了字符串切片来反转字符串 a,并将其与原始字符串 a 进行比较。如果它们相等,就打印 "yes",表示是回文串;否则打印 "no"。这种方法简洁明了,没有定义额外的函数。

7-7 找最后的字符
# 读取用户输入的字符串  
a = input()  

# 使用切片获取字符串的最后一个字符(或空字符串,如果输入为空)  
# 并打印它  
print(a[-1:])


7-8 多说几遍我爱你
# 读取用户输入的字符串,假设输入格式为 "string_value int_value"(由空格分隔)  
user_input = input()  

# 使用split()方法按空格分割字符串  
parts = user_input.split()  

# 直接从列表中赋值给变量a和b_str  
a = parts[0]  
b_str = parts[1]  

# 尝试将b_str转换为整数,由于已经确定输入格式正确,这里不会抛出异常  
b = int(b_str)  

# 打印a加上b次的"我爱你"  
print(a + "我爱你" * b)  

7-9 重复打印
a=input()
b=a[0]
c=a[2]
b=int(b)
print(c*b)

7-10 重要的事情说N遍
a=input()
b=int(input())
print((a+"!")*b)

7-11 阿福的年龄
a=input()
year=a[6:10]
year=int(year)
print(2080-year)
7-12 字符串判等
a=input()
b=input()
sp_a=a.split()
join_a="".join(sp_a)
low_a=join_a.lower()
sp_b=b.split()
join_b="".join(sp_b)
low_b=join_b.lower()
if low_a==low_b:
    print("YES")
else:
    print("NO")