编写python程序,输人一个字符串(只包含字母和* 号),删除该字符串中除了尾部以外的所有*号。例如,输人的字符串为"*** SSFG** fgeD***",删除后的字符申应"SSFGfgeD***"
时间: 2023-07-23 22:17:12 浏览: 175
好的,这是一个简单的 Python 程序实现:
```python
s = input("请输入一个字符串:")
if s[-1] == '*':
result = s.rstrip('*')
else:
result = s.rstrip('*') + '*'
print(result)
```
解释一下这个程序的实现过程:
1. 首先读入一个字符串,存储在变量 `s` 中。
2. 判断字符串的最后一个字符是否为 `*`,如果是,则使用 `rstrip()` 方法删除字符串末尾的所有 `*`,结果存储在 `result` 变量中。
3. 如果字符串的最后一个字符不是 `*`,则使用 `rstrip()` 方法删除字符串末尾的所有 `*`,然后在结果字符串末尾添加一个 `*`,结果存储在 `result` 变量中。
4. 最后输出结果字符串 `result`。
注意:这个程序只适用于字符串末尾有一个或多个 `*` 的情况。如果字符串中间有 `*`,则不能正确处理。
相关问题
假定输入的字符串只包含字母和*号,编写fun函数 只保留尾部的*
可以使用Python来编写这个函数。
```python
def fun(s):
if not s:
return ""
i = len(s) - 1
while i >= 0 and s[i] == '*':
i -= 1
return s[:i+1]
```
这个函数首先检查输入的字符串是否为空,如果是空字符串则直接返回空字符串。然后使用一个循环从字符串的末尾开始向前遍历,直到找到第一个不是*号的字符为止,然后返回这个字符之前的子字符串。这样就可以实现只保留字符串尾部的*号的功能。
例如,对于输入"abc***",函数返回"abc";对于输入"**",函数返回""。这个函数可以有效地处理输入字符串只包含字母和*号的情况,保留尾部的*号。
输入一个字符串(只包含字母和*号),要求使用正则表达式的方式,删除该字符串中除了尾部以外的所有*号 后,再输出该字符串。
好的,根据你的要求,我提供以下正则表达式的解决方案:
```python
import re
string = input("请输入字符串:")
new_string = re.sub(r"\*+(?!\w+$)", "", string)
print("处理后的字符串为:", new_string)
```
解释一下这个正则表达式:
- `\*+`:匹配一个或多个星号。
- `(?!\w+$)`:该部分是一个否定预测先行断言,表示星号后面不能跟一个或多个字母,然后是字符串结尾(即星号只能出现在字符串的末尾)。
这样,我们就可以把除了尾部以外的所有星号都删掉了。
阅读全文