我在这里做错了什么? (Python 3)(入门)

时间:2018-09-14 16:54:25

标签: python python-3.x

我是python的新手,我正在尝试创建一个程序,该程序可以让用户向程序发送单词,它将单词添加到列表中,然后将列表制成字符串并打印出来。

class joinString():

    op_list = []    # this is what i was told to do to initialize a list

    def init(self):    # idk what this is used for to be honest
        print("Hello")

    def main(self):

        string_in = ""    # string input
        print("Enter strings, to stop enter a '0'")
        while string_in != '0':    #while loop checks if string equals '0', stop
            string_in = input("String: ")    #asks user for inputs
            joinString().op_list.append(string_in)
        final_string = ''.join(joinString().op_list)    # makes final string 
        print("Final Product: " + final_string)    # prints final string

if __name__ == "__main__":    #idk what a name is
    test = joinString()
    test.main()

# I took AP computer science A (coding in java) and scored pretty well but I 
# didn't know where to go from there so I'm trying to learn java.

2 个答案:

答案 0 :(得分:1)

在您应该使用main的{​​{1}}中,您正在使用joinString()。更大的问题是您正在用Python编写Java样式的代码。这是您问题的更多 Pythonic 解决方案:

self

首先,我们打印出一条消息,告诉用户如何使用该程序。我们使用空字符串表示用户要退出。

print('Type a word then hit enter. Leave blank to exit.')
words = []
while True:
    word = input('Word: ')
    if not word:
        break
    words.append(word)
print(*words)

然后,我们创建一个空列表print('Type a word then hit enter. Leave blank to exit.') ,以存储用户的输入。

words

接下来,我们进入一个无限循环(不用担心,稍后我们会words = [] 将其退出)。

break

我们要求用户输入一个单词并将其存储在while True: 中。

word

在Python中,空字符串为false。因此,我们检查用户是否未输入任何内容。

    word = input('Word: ')

如果他们什么都不输入,我们就会跳出无限循环。

    if not word:

如果他们输入了一些内容,我们会将他们输入的单词添加到 break 的末尾,然后循环返回。

words

默认情况下, words.append(word) 在其打印的每个对象之间放置一个空格。因此,我们使用print()操作将*的每个元素作为参数传递给words。这会导致每个单词之间都留有空格。

print()

希望可以帮助您学习Python。

答案 1 :(得分:0)

您的main方法应使用self引用实例,而不要使用joinString实例化joinString()的另一个实例。

替换:

joinString().op_list.append(string_in)

具有:

self.op_list.append(string_in)

并替换:

final_string = ''.join(joinString().op_list)

具有:

final_string = ''.join(self.op_list)

此外,init方法应拼写为__init__,并在实例化对象时将其初始化。