Python 3.x 我很难理解编程的流程
我是编程新手,我遇到的问题之一是结构化。我正在学习Python(3),并通过制作一些实用程序进行练习。我遇到的一个问题是如何获得正确的程序流。我发现当我编写一个函数时,我意识到我需要它来引导另一个函数,所以我在编写的函数末尾调用下一个函数。然后我意识到Python将逐行读取代码,因此我必须在我正在编写的函数之上调用我要调用的函数。结果是我最终以相反的方式编写了程序。例如:Python 3.x 我很难理解编程的流程,python-3.x,algorithm,Python 3.x,Algorithm,我是编程新手,我遇到的问题之一是结构化。我正在学习Python(3),并通过制作一些实用程序进行练习。我遇到的一个问题是如何获得正确的程序流。我发现当我编写一个函数时,我意识到我需要它来引导另一个函数,所以我在编写的函数末尾调用下一个函数。然后我意识到Python将逐行读取代码,因此我必须在我正在编写的函数之上调用我要调用的函数。结果是我最终以相反的方式编写了程序。例如: #Replaces letters in chosen word with X's def display_word():
#Replaces letters in chosen word with X's
def display_word():
selected_word = list(selected_word)
for x in selected_word:
x = "X"
print (x)
#Function that will display the welcome message when program launches
def start_screen():
user_input = input("Hello and welcome to Hang Man! If you would like to
start a game, please enter 'YES' now!")
user_input = user_input.upper()
if user_input == "YES":
display_word()
else:
print ("You're no fun!")
start_screen()
这是我在一个hang-man程序中写的一点小技巧,我正在练习。我开始编写start_screen函数,然后意识到我需要在start_screen函数中调用display_word函数,但要做到这一点,我必须在调用函数之前定义该函数,因此我必须在start_screen函数上方编写display_word函数,这实际上使我反向移动。我的问题是,这是事情的发展方向,还是有更好的方式去做事情。用相反的方式编写代码似乎效率很低,但我不确定这是否只是我的经验不足。Python中的所有函数在使用之前都必须定义。这并不意味着函数必须列在调用它的函数之上 这些函数可以按任何顺序定义。您只需确保启动程序的可执行部分(如
start\u screen()
)在定义函数的下面被调用
在hangman程序中,切换这两个函数的顺序是完全安全的
一般来说,如果所有可执行代码都遵循所有函数定义,那么最好按照您选择的顺序保存它们
示例:
这完全可以。你甚至可以切换它们
def fn1():
print('I am function 1')
fn2()
def fn2():
print ('I am function 2')
fn1()
这太糟糕了
fn1() #not defined yet!
def fn1():
print('I am function 1')
def fn2():
print ('I am function 2')
这也很糟糕
def fn1():
print('I am function 1')
fn2() #not defined yet!
fn1()
def fn2():
print ('I am function 2')
虽然按相反顺序编写函数被认为是一种良好的编程实践,但在Python中它并没有真正的区别,只要当您使用一个名称时,该名称已经被定义,例如,交换
display\u word()
和start\u screen()
位置没有任何区别,但在定义之前不允许调用start\u screen()
。