Python 题目描述 输入一行字符串,字符串由整数与其他字符构成,请将其中的整数提取出来(包括整数前的负号,单独负号不算),每行一个输出
时间: 2023-06-09 11:08:08 浏览: 60
可以用正则表达式来实现这个功能。具体实现代码如下:
```python
import re
string = input() # 输入一行字符串
pattern = r'-?\d+' # 匹配整数的正则表达式
matches = re.findall(pattern, string) # 查找所有整数的匹配项
for match in matches:
print(match)
```
解释一下代码的具体实现:
1. 首先使用 `input()` 函数获取一行字符串;
2. 然后设置一个正则表达式 `pattern`,用来匹配整数;
3. 调用 `re.findall()` 函数,返回所有匹配 `pattern` 的子串,也就是整数部分;
4. 最后使用 `for` 循环,将每一个匹配到的整数打印出来。
注意,这个正则表达式匹配的整数可能包含负号,也就是说,一个负号后面紧跟着一个数字也会被当作一个整数来提取。
相关问题
Python 题目描述 输入一行字符串,字符串由整数与其他字符构成,请将其中的整数提取出来,每行一个输出
可以使用正则表达式来匹配数字。具体实现可以参考下面的代码:
```python
import re
def extract_numbers(s):
pattern = r'\d+'
numbers = re.findall(pattern, s)
for num in numbers:
print(num)
s = input()
extract_numbers(s)
```
这段代码输入一行字符串,然后使用正则表达式 \d+ 匹配其中的所有数字,最后逐个输出。注意,这里的数字指的是连续的数字字符,比如 123 被视为一个数字,而不是单独的 1、2、3。
Python 题目描述 输入一行字符串,字符串由整数与其他字符构成,请将其中的整数提取出来(包括负号),每行一个输出
回答:
好的,我知道。以下是代码实现:
```python
s = input()
num = ''
for i in s:
if i.isdigit() or i == "-":
num += i
else:
if num != '':
print(num)
num = ''
if num != '':
print(num)
```
这段代码首先读入一行字符串,然后循环遍历每个字符。如果字符是数字或者负号,就将它加到num这个字符串变量内,如果不是就检查num中是不是有数字了,有的话就输出它,并把num清空。最后还要再次检查一遍num是否非空,因为最后一个数字可能没有被输出。