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