我在解决下面的问题时遇到了一些麻烦(我对如何解决它的想法直接在问题之下)
“在罗伯特麦克洛斯基的《为小鸭让路》一书中,小鸭的名字是杰克、卡克、拉克、麦克、纳克、瓦克、帕克和嘎嘎。”
此循环按顺序输出这些名称:
prefixes = 'JKLMNOPQ'
suffix = 'ack'
for letter in prefixes:
print letter + suffix
Run Code Online (Sandbox Code Playgroud)
输出是:
Jack
Kack
Lack
Mack
Nack
Oack
Pack
Qack
Run Code Online (Sandbox Code Playgroud)
当然,这并不完全正确,因为“Ouack”和“Quack”拼错了。
练习 8.2 修改程序以修复此错误。”
因此,前缀 + 后缀以当前形式产生 4 个字符。Ouack 和 Quack 是 5 个字符。在上一节中,我们使用 'while' 来遍历字符串以创建一个条件,如果索引等于字符串的长度,则条件为假,并且不执行循环体。我想我需要修改 for 循环,以便如果输出字符数小于输入的原始字符串值,它会添加字母“U”。我如何处理为每个名称输入的字符串值的长度和“前缀”?
我不确定我会如何去做,或者我是否应该采取不同的策略。
我提前道歉,我已经扼杀了任何术语,我读这本书有两天了,而且我之前没有计算机科学背景。
>>> for letter in prefixes:
if letter in ('O', 'Q'): # if the letter is O or Q
print letter + 'u' + suffix
else:
print letter + suffix
Jack
Kack
Lack
Mack
Nack
Ouack
Pack
Quack
Run Code Online (Sandbox Code Playgroud)