实现一个功能

时间:2011-01-27 02:18:30

标签: python

实现一个不带参数的函数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()应该做什么?温柔的家伙,我是一个蟒蛇n00b。

2 个答案:

答案 0 :(得分:1)

听起来您使用的是Python 3. raw_input()已替换为input()

答案 1 :(得分:1)

就逻辑而言,您可能希望以相反的方式执行此操作。

  1. 维护标点字符的列表(或字符串)。 (检查标准库模块字符串是否有任何帮助)
  2. 浏览输入字符串的每个字符,如果它出现在上面的列表中,请将其打印出来。
  3. 看起来string模块可以在这里提供帮助:

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

    所以,你会在程序中编写一些内容:

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

    是的,您可以在python2中使用raw_input()来获取您正在获取的字符串。对于python3,您应该使用input()