我是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.
答案 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__
,并在实例化对象时将其初始化。