编写一个Python程序,从控制台输入一个字符串(保存到变量s中),然后通过while循环不断输入字符串(保存到变量subStr中),并统计subStr在s中出现的次数,最后利用format方法格式化统计结果。使用三种方法
时间: 2024-03-14 16:47:16 浏览: 112
好的,下面是三种不同的方法来实现上述程序:
方法一:使用while循环和字符串方法count
```python
s = input("请输入一个字符串: ")
count = 0
while True:
subStr = input("请输入一个子串,按回车结束: ")
if not subStr:
break
count += s.count(subStr)
result = "子串在字符串中出现了{}次".format(count)
print(result)
```
程序首先从控制台输入一个字符串s,然后定义了计数器count,用来统计子串在字符串中出现的次数。接着,程序使用while循环不断输入子串subStr,每次输入后使用字符串方法count统计子串在字符串中出现的次数,并将结果累加到计数器count中。
当输入空字符串时,循环终止,程序使用format方法将统计结果格式化为字符串,并打印出来。
方法二:使用while循环和字符串方法find
```python
s = input("请输入一个字符串: ")
count = 0
while True:
subStr = input("请输入一个子串,按回车结束: ")
if not subStr:
break
pos = s.find(subStr)
while pos != -1:
count += 1
pos = s.find(subStr, pos + 1)
result = "子串在字符串中出现了{}次".format(count)
print(result)
```
程序首先从控制台输入一个字符串s,然后定义了计数器count,用来统计子串在字符串中出现的次数。接着,程序使用while循环不断输入子串subStr,每次输入后使用字符串方法find定位子串在字符串中的位置,并将位置保存在变量pos中。
如果pos为-1,则说明子串在字符串中不存在,退出内层循环;否则,说明子串在字符串中存在,计数器count加1,并使用find方法继续查找下一个子串的位置。
当输入空字符串时,循环终止,程序使用format方法将统计结果格式化为字符串,并打印出来。
方法三:使用for循环和切片
```python
s = input("请输入一个字符串: ")
count = 0
while True:
subStr = input("请输入一个子串,按回车结束: ")
if not subStr:
break
for i in range(len(s) - len(subStr) + 1):
if s[i:i+len(subStr)] == subStr:
count += 1
result = "子串在字符串中出现了{}次".format(count)
print(result)
```
程序首先从控制台输入一个字符串s,然后定义了计数器count,用来统计子串在字符串中出现的次数。接着,程序使用while循环不断输入子串subStr,每次输入后,程序使用for循环遍历字符串s中每一个可能的子串,并判断当前子串是否与输入的子串相等。
如果相等,则说明输入的子串在字符串s中出现了一次,计数器count加1。
当输入空字符串时,循环终止,程序使用format方法将统计结果格式化为字符串,并打印出来。
这三种方法分别使用了字符串方法count、find和切片来统计子串在字符串中出现的次数,算法相对简单,实现起来也比较容易。
阅读全文