Ví dụ:
def main[]:
if something == True:
player[]
elif something_else == True:
computer[]
def player[]:
# do something here
check_winner[] # check something
computer[] # let the computer do something
def check_winner[]:
check something
if someone wins:
end[]
def computer[]:
# do something here
check_winner[] # check something
player[] # go back to player function
def end[]:
if condition:
# the player wants to play again:
main[]
elif not condition:
# the player doesn't want to play again:
# stop the program
# whatever i do here won't matter because it will go back to player[] or computer[]
main[] # start the program
Vấn đề của tôi là nếu một điều kiện nhất định trở thành đúng [trong hàm check_winner
] và chức năng end[]
thực thi, nó sẽ quay lại computer[]
hoặc player[]
vì không có dòng nào bảo máy tính ngừng thực hiện player[]
hoặc computer[]
. Làm thế nào để bạn dừng các chức năng trong Python?
Georgy
11.1k7 Huy hiệu vàng62 Huy hiệu bạc69 Huy hiệu đồng7 gold badges62 silver badges69 bronze badges
Đã hỏi ngày 6 tháng 1 năm 2015 lúc 15:53Jan 6, 2015 at 15:53
3
Một câu lệnh
def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
1 đơn giản sẽ 'dừng' hoặc trả lại chức năng; Nói một cách chính xác, nó 'trả lại' thực thi chức năng đến điểm mà hàm được gọi - hàm bị chấm dứt mà không có hành động nào nữa.Điều đó có nghĩa là bạn có thể có một số địa điểm trong suốt chức năng của bạn, nơi nó có thể trở lại. Như thế này:
def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
Georgy
11.1k7 Huy hiệu vàng62 Huy hiệu bạc69 Huy hiệu đồng7 gold badges62 silver badges69 bronze badges
Đã hỏi ngày 6 tháng 1 năm 2015 lúc 15:53Jan 6, 2015 at 15:56
Một câu lệnh
def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
1 đơn giản sẽ 'dừng' hoặc trả lại chức năng; Nói một cách chính xác, nó 'trả lại' thực thi chức năng đến điểm mà hàm được gọi - hàm bị chấm dứt mà không có hành động nào nữa.HektorĐiều đó có nghĩa là bạn có thể có một số địa điểm trong suốt chức năng của bạn, nơi nó có thể trở lại. Như thế này:14 silver badges19 bronze badges
2
Đã trả lời ngày 6 tháng 1 năm 2015 lúc 15:56
def some_function[]:
if do_not_continue:
return # implicitly, this is the same as saying `return None`
do_something_else[]
Georgy
11.1k7 Huy hiệu vàng62 Huy hiệu bạc69 Huy hiệu đồng7 gold badges62 silver badges69 bronze badges
Đã hỏi ngày 6 tháng 1 năm 2015 lúc 15:53Jan 6, 2015 at 15:57
Một câu lệnh
def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
1 đơn giản sẽ 'dừng' hoặc trả lại chức năng; Nói một cách chính xác, nó 'trả lại' thực thi chức năng đến điểm mà hàm được gọi - hàm bị chấm dứt mà không có hành động nào nữa.jezĐiều đó có nghĩa là bạn có thể có một số địa điểm trong suốt chức năng của bạn, nơi nó có thể trở lại. Như thế này:3 gold badges34 silver badges60 bronze badges
Đã trả lời ngày 6 tháng 1 năm 2015 lúc 15:56
import sys
def end[]:
if condition:
# the player wants to play again:
main[]
elif not condition:
sys.exit["The player doesn't want to play again"] #Right here
HektorhektorFeb 14, 2020 at 17:42
adriancm93adriancm93adriancm93
1.77514 Huy hiệu bạc19 Huy hiệu đồng2 silver badges5 bronze badges
def player[game_over]:
do something here
game_over = check_winner[] #Here we tell check_winner to run and tell us what game_over should be, either true or false
if not game_over:
computer[game_over] #We are only going to do this if check_winner comes back as False
def check_winner[]:
check something
#here needs to be an if / then statement deciding if the game is over, return True if over, false if not
if score == 100:
return True
else:
return False
def computer[game_over]:
do something here
game_over = check_winner[] #Here we tell check_winner to run and tell us what game_over should be, either true or false
if not game_over:
player[game_over] #We are only going to do this if check_winner comes back as False
game_over = False #We need a variable to hold wether the game is over or not, we'll start it out being false.
player[game_over] #Start your loops, sending in the status of game_over
Trong ví dụ này, dòng
def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
2 sẽ không được thực thi nếu def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
3 là def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
4. Kiểm soát sẽ trả về, thay vào đó, bất kỳ hàm nào được gọi là def player[]:
# do something here
check_winner_variable = check_winner[] # check something
if check_winner_variable == '1':
return
second_test_variable = second_test[]
if second_test_variable == '1':
return
# let the computer do something
computer[]
5.Đã trả lời ngày 6 tháng 1 năm 2015 lúc 15:57
JezjezJan 6, 2015 at 16:03
14.4K3 Huy hiệu vàng34 Huy hiệu bạc60 Huy hiệu ĐồngMrAlexBailey
Điều này sẽ kết thúc chức năng và bạn thậm chí có thể tùy chỉnh thông báo "lỗi":18 silver badges30 bronze badges
1
Đã trả lời ngày 14 tháng 2 năm 2020 lúc 17:42
832 huy hiệu bạc5 huy hiệu đồngApr 27, 2021 at 13:42