题目如下
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,这是老师留的作业题,太高级的我也不会用
1
Trim21 2019-10-24 12:34:26 +08:00 via iPhone
把用户输入的词放到一个 list 里面,然后在输出的时候先把 list 排序,然后输出第一个和最后一个
|
3
HHH01 OP @Trim21 list 不能用,还没学到,用了评分过不了。continue 这个应该没问题吧。。。现在这个程序关键是只输入一个单词的时候会出问题
|
4
Trim21 2019-10-24 12:45:01 +08:00 via Android 1
@ryanjmliao 只输入一个单词的时候 last word 一定是 z 对吧?
因为你只输入一个单词的时候一定不会运行最后一个判断,你需要把倒数第二个 continue 删掉,无论前一个条件是真是假都应该判断这个单词是不是出现在单词表最后的单词 |