实现一个函数

1 投票
2 回答
2266 浏览
提问于 2025-04-16 10:41

实现一个叫做 punctuation() 的函数,这个函数不需要任何参数。它会从用户那里输入一个字符串,然后打印出这个字符串中所有的标点符号,按照从左到右的顺序显示。

def punctuation():

    a = raw_input("Please enter a string:")

    check = ['!', ',', '.', ':', '?', ';']
    for p in check:
        if p in a:
            a.remove(p)

我在 IDLE 上总是看到一个错误提示,说 raw_input 没有定义?还有,我对 split() 这个函数的作用也不是很了解。大家轻点,我还是个 Python 新手。

2 个回答

1

听起来你在使用Python 3。raw_input()这个函数已经被input()替代了。

1

从你的逻辑来看,你可能想要反向操作。

  1. 先准备一个标点符号的列表(或者字符串)。可以查查标准库中的字符串模块,看看有没有相关的帮助。
  2. 逐个检查你输入字符串中的每个字符,如果这个字符在你准备的列表里,就打印出来。

看起来 string 模块在这里确实能帮上忙:

>>> import string
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

所以,你的程序大概可以这样写:

for each_character in mystr:
    if each_character in string.punctuation:

没错,在python2中你可以用 raw_input() 来获取字符串,像你现在这样。而在python3中,你只需要用 input() 就可以了。

撰写回答