统计一个英文句子中包含2个a的单词有几个,并将两个a替换成星号,不能用count函数

该博客介绍了一种方法,用于统计不含标点的英文句子中恰好有两个'a'的单词数量,并将这两个'a'替换为'*',过程中不使用内置的`count`函数。博主提供了两种实现方式,并详细阐述了每一步操作,包括去除标点、分割单词、检查'a'的数量以及进行替换。最后,展示了如何输出含'a'的单词总数和新句子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法:
把句子中的标点去掉,替换成空格
然后把 句子换成单词
遍历所有单词,看看有几个a,如果有就把它里面的a替换成*

方法一:不用系统自带函数

def count(s, x):
    if (not isinstance(s, str)) or (not isinstance(x, str)):
        return None
    num = 0
    i = 0
    while i <= len(s) - 1:		#最大坐标
        if s[i:i + len(x)] == x:
            num += 1
            i += len(x)
        else:
            i += 1
    return num

print(count("abcdbcd", "bc"))

s = "I am a abandon,aaaa boy aabbaa aacc!"
s = list(s)
new_s = []
for i in s:					#过滤标点,只保留空格和大小写字母
    if i == " " or ((i >= "a" and i <= "z") or (i >= "A" and i <= "Z")):
        new_s.append(i)
    else:
        new_s.append(" ")
s = "".join(new_s)
result_num = 0
word_list = s.split()			#取出来单词列表
new_sentence = ""			#存储替换
### Python 字符串练习题及相关代码 以下是几个常见的 Python 字符串操作练习题及其对应的代码示例: #### 题目 1:判断一个字符串是否是另一个字符串的子串 可以通过 `str.count()` 方法来统计某个子串在目标字符串中的出现次数。如果返回值大于零,则说明该子串存在。 ```python s = input("请输入字符串1:") s1 = input("请输入字符串2:") if s.find(s1) != -1: print(f"{s1} 是 {s} 的子串") # 使用 find() 函数替代 count() elif s1.find(s) != -1: print(f"{s} 是 {s1} 的子串") else: print("两个字符串互相不包含") ``` --- #### 题目 2:判断输入的字符串是否为回文字符串 可以先将字符串转为小写去除非字母数字字符,然后再通过切片反转的方式验证其正序和逆序是否相同。 ```python import re def is_palindrome(s): cleaned_s = ''.join(re.findall(r'[a-zA-Z0-9]', s)).lower() # 去除非字母数字字符转换为小写 return cleaned_s == cleaned_s[::-1] input_str = input("请输入一串字符串:") result = is_palindrome(input_str) if result: print("这是一个回文字符串") else: print("这不是一个回文字符串") ``` --- #### 题目 3:将二进制字符串转换为十进制整数 利用内置函数 `int` 指定基数为 2 来完成此任务。 ```python binary_str = input("请输入一个二进制字符串:") decimal_value = int(binary_str, base=2) print(f"二进制字符串 {binary_str} 转换为十进制后的值为:{decimal_value}") ``` --- #### 题目 4:统计字符串中每个单词的频率 给定一段文字,将其分割成多个单词计算每个单词出现的频次。 ```python from collections import Counter text = input("请输入一段文本:").strip().split() word_count = Counter(text) for word, freq in word_count.items(): print(f"'{word}' 出现了 {freq} 次") ``` --- #### 题目 5:替换字符串中的特定模式 假设需要将字符串中的所有数字替换成星号 (`*`)。 ```python import re original_string = input("请输入原始字符串:") modified_string = re.sub(r'\d', '*', original_string) # 将匹配到的数字替换为 '*' print(f"修改后的字符串为:{modified_string}") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值