求教 Python 练习,单词排序

2019-10-24 12:27:12 +08:00
 HHH01

题目如下

Exercise 5. Write a program words.py. The program should repeatedly ask the user to enter a word, one at a time, until they enter done (which does not count as an entered word). At that point, the program should print: [first] comes first in the dictionary [last] comes last in the dictionary with [first] and [last] replaced with entered words which would come first and last when sorted alphabetically. You can assume all words entered are lower-case, and don’t contain non-alphabetic characters. You can also assume that the user will always give at least one word (different than done). An example session might look as follows: Enter a word: foo Enter a word: bar Enter a word: baz Enter a word: zoo Enter a word: boo Enter a word: done bar comes first in the dictionary zoo comes last in the dictionary

我自己弄了一个, i='a' j='z' while True: x=input('Enter a word: ') if x =='done': break if str(x)>=i: i=x continue if str(x)<j: j=x continue print(j, 'comes first in the dictionary') print(i, 'comes last in the ditionary')

但是这有个问题,就是只输入一个单词的时候就废了。。。 有没有大佬出来指点一下?给点思路。。。但是不要用太高级的,我目前只学到 flow control,这是老师留的作业题,太高级的我也不会用

2172 次点击
所在节点    Python
5 条回复
Trim21
2019-10-24 12:34:26 +08:00
把用户输入的词放到一个 list 里面,然后在输出的时候先把 list 排序,然后输出第一个和最后一个
Trim21
2019-10-24 12:36:07 +08:00
@Trim21 或者直接把你这段代码后面的两个 continue 去掉不就好了…
HHH01
2019-10-24 12:39:08 +08:00
@Trim21 list 不能用,还没学到,用了评分过不了。continue 这个应该没问题吧。。。现在这个程序关键是只输入一个单词的时候会出问题
Trim21
2019-10-24 12:45:01 +08:00
@ryanjmliao 只输入一个单词的时候 last word 一定是 z 对吧?
因为你只输入一个单词的时候一定不会运行最后一个判断,你需要把倒数第二个 continue 删掉,无论前一个条件是真是假都应该判断这个单词是不是出现在单词表最后的单词
HHH01
2019-10-24 13:05:38 +08:00
@Trim21 感谢感谢,是这个道理,搞定了😅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/612467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX