Python 2.7 正在跳过打印,但正在继续程序
所以我有一个任务: 你的朋友想做一个单词阶梯!这是一个单词列表,其中每个单词与前面的单词有一个字母的差异。下面是一个例子: 猫 婴儿床 齿轮 日志 写一个程序来帮助你的朋友 它应做到以下几点: 向你的朋友要首字母 反复向他们索要索引和一封信 你应该用他们输入的字母替换他们提供的索引中的字母,然后打印新单词 当用户为索引输入-1时,停止请求输入 以下是幕后应该发生的事情: 您应该有一个函数get_index,它会反复要求用户输入索引,直到用户输入的有效整数在初始字符串的可接受索引范围内。 (如果他们输入的数字超出范围,您应回复无效索引。) 您应该有另一个函数get_letter,它会反复要求用户输入一个字母,直到用户只输入一个小写字母。(如果他们输入多个字符,则您的回复字符必须正好是一个字符!。如果他们输入大写字母,则您的回复字符必须是小写字母!) 您应该将当前单词的列表版本存储在变量中。这是您应该在每次用户交换新字母时更新的内容 每次必须打印当前单词时,打印变量中保留的列表的字符串版本 我尝试过重写、研究甚至调试模式Python 2.7 正在跳过打印,但正在继续程序,python-2.7,Python 2.7,所以我有一个任务: 你的朋友想做一个单词阶梯!这是一个单词列表,其中每个单词与前面的单词有一个字母的差异。下面是一个例子: 猫 婴儿床 齿轮 日志 写一个程序来帮助你的朋友 它应做到以下几点: 向你的朋友要首字母 反复向他们索要索引和一封信 你应该用他们输入的字母替换他们提供的索引中的字母,然后打印新单词 当用户为索引输入-1时,停止请求输入 以下是幕后应该发生的事情: 您应该有一个函数get_index,它会反复要求用户输入索引,直到用户输入的有效整数在初始字符串的可接受索引范围内。 (如果他
def get_index():
while True:
index_in = int(input("Enter a number between 0 and " + str(len(string) - 1) + ": "))
if index_in > len(string) or index_in < -1:
print "Invalid Index"
elif index_in == -1:
return False
else:
get_letter(index_in)
def get_letter(index):
global string
char_list = list(string)
while True:
letter = input("Enter a letter: ")
if letter.isupper():
print "Character must be lower case!"
else:
char_list[index] = letter
string = ('').join(char_list)
break
print string
string = input("Enter a word: ")
get_index()
def get_index():
尽管如此:
索引_in=int(输入(“输入一个介于0和”+str(len(string)-1)+“:”)之间的数字)
如果index_in>len(字符串)或index_in<-1:
打印“无效索引”
elif索引_in==-1:
返回错误
其他:
获取字母(索引中)
def get_字母(索引):
全局字符串
字符列表=列表(字符串)
尽管如此:
字母=输入(“输入字母:”)
如果字母.isupper():
打印“字符必须小写!”
其他:
字符列表[索引]=字母
字符串=('').join(字符列表)
打破
打印字符串
字符串=输入(“输入一个单词:”)
获取索引()
该程序的示例如下所示:
输入一个单词:cat
输入索引(-1)退出:1
输入一个字母:o
婴儿床
输入索引(-1)退出:2
输入一个字母:g
齿轮
输入索引(-1)退出:5
无效索引
输入索引(-1以退出):-3
无效索引
输入索引(-1)以退出:0
输入一个字母:L
字符必须是小写字母
输入一个字母:l
日志
输入索引(-1退出):-1您的代码看起来很完美!
只需要根据(python 3)进行一些更改
def get_index():
尽管如此:
index_in=int(输入(“输入一个介于0和“+str(len(string)-1)+”(-1以退出):”)之间的数字)
如果索引_in>len(字符串)-1或索引_in<-1:
打印(“无效索引”)
elif索引_in==-1:
返回错误
其他:
获取字母(索引中)
def get_字母(索引):
全局字符串
字符列表=列表(字符串)
尽管如此:
字母=输入(“输入字母:”)
如果字母.isupper():
打印(“字符必须小写!”)
其他:
字符列表[索引]=字母
字符串=('').join(字符列表)
打破
打印(字符串)
回来
字符串=输入(“输入一个单词:”)
获取索引()
在python 3中,应该使用print(msg)而不是print msg
<强>您错过了一个条件>,考虑这个场景,
运行程序 输入一个单词:c 输入一个介于0和0之间的数字(-1)退出:1 错误 第行的get_index()检查出错:if index_in > len(string) or index_in < -1:
如果index_in>len(字符串)或index_in<-1:
应该是:
if index_in > len(string) -1 or index_in < -1:
如果index_in>len(字符串)-1或index_in<-1:
- ======================================================================================================*
def get_index(string):
try:
while True:
index_in = int(input("Enter a number between 0 and " + str(len(string) - 1) + " (-1 to quit): "))
if index_in > len(string) -1 or index_in < -1:
print("Invalid Index")
elif index_in == -1:
return False
else:
get_letter(index_in, string)
except ValueError:
print("Please Enter a number!")
get_index(string)
def get_letter(index, string):
char_list = list(string)
while True:
letter = input("Enter a letter: ")
if letter.isupper():
print("Character must be lower case!")
else:
char_list[index] = letter
string = ('').join(char_list)
break
print(string)
return
if __name__ == "__main__":
string = input("Enter a word: ")
get_index(string)
def get_索引(字符串):
尝试:
尽管如此:
index_in=int(输入(“输入一个介于0和“+str(len(string)-1)+”(-1以退出):”)之间的数字)
如果索引_in>len(字符串)-1或索引_in<-1:
打印(“无效索引”)
elif索引_in==-1:
返回错误
其他:
获取字母(索引,字符串)
除值错误外:
打印(“请输入一个数字!”)
获取索引(字符串)
def get_字母(索引,字符串):
字符列表=列表(字符串)
尽管如此:
字母=输入(“输入字母:”)
如果字母.isupper():
打印(“字符必须小写!”)
其他:
字符列表[索引]=字母
字符串=('').join(字符列表)
打破
打印(字符串)
回来
如果名称=“\uuuuu main\uuuuuuuu”:
字符串=输入(“输入一个单词:”)
获取索引(字符串)
更改为:
string
如何在第一个答案中使用,以及如何在更新的答案中使用您面临的问题是什么?您好,欢迎来到SO。您可能需要阅读和编辑相应的问题。是的,同意。。这并不完美,但让我们感谢他的努力,并通过指导来激励他。“指导”意味着教授良好的实践(避免全局性,有正确的执行流程等)。是的,我同意你的建议——“应该避免全局性”。我会相应地更新答案。
def get_index(string):
try:
while True:
index_in = int(input("Enter a number between 0 and " + str(len(string) - 1) + " (-1 to quit): "))
if index_in > len(string) -1 or index_in < -1:
print("Invalid Index")
elif index_in == -1:
return False
else:
get_letter(index_in, string)
except ValueError:
print("Please Enter a number!")
get_index(string)
def get_letter(index, string):
char_list = list(string)
while True:
letter = input("Enter a letter: ")
if letter.isupper():
print("Character must be lower case!")
else:
char_list[index] = letter
string = ('').join(char_list)
break
print(string)
return
if __name__ == "__main__":
string = input("Enter a word: ")
get_index(string)