30/09/2018, 17:24
thắc mắc về vòng lặp while python
Cho mình hỏi là vòng lặp while True kia nghĩa là gì, có phải là vòng lặp vô hạn ko, hay là gì và dùng như thế nào ạ? với cái biến bear_moved = False kia là sao ạ?
cảm ơn mọi người
def bear_room():
print "There is a bear here."
print "The bear has a bunch of honey."
print "The fat bear is in front of another door."
print "How are you going to move the bear?"
bear_moved = False
while True:
choice = raw_input("> ")
if choice == "take honey":
dead("The bear looks at you them slaps your face off.")
elif choice == "taunt bear" and not bear_moved:
print "The bear has moved from the door. You can go through it now."
bear_moved = True
elif choice == "taunt bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif choice == "open door" and bear_moved:
gold_room()
else:
print "I got no idea what that means."
ps: e có gg r mà ko hiểu j mới vô đây hỏi các bác đừng ném gạch tội nghiệp e T.T
Bài liên quan
bear_moved cũng là 1 biến có kiểu true/false để kết hợp với điều kiện đứng trước nó thông qua toán tử and.
Nếu điều kiện choice có giá trị “taunt bear” là đúng và biến bear_moved cũng mang giá trị true thì mới thực hiện dòng dead(“The bear gets pissed off … leg off.”)
nhưng lsao biết đc giá trị “taunt bear” là True ạ, lệnh elif bên dưới cũng có choice == “taunt bear” mà
thì không liên quan đến true/false gì cả,
nhưng
có lại là 1 biểu thức so sánh trả về 1 trong 2 giá trị true hoặc false
Nó đúng là vòng lặp vô hạn, tác dụng là để việc chạy chương trình được liên tục, nghĩa là khi bạn muốn test chẳng hạn, thay vì nhập xong 1 lần chương trình cho ra kết quả rồi tắt, thì có While true vào sẽ làm chương trình tiếp tục chạy vòng mới. Thường thì khi muốn test 1 chương trình có input ta làm như vậy.
Biến này thực chất trong đoạn này không có tác dụng, vì các biểu thức điều kiện có nó tất cả đều true.
vậy cho e hỏi là khi mình nhập “taunt bear” vào thì nó chạy elif này
chứ ko phải elif này ạ
Đúng rồi bạn, câu lệnh chỉ được thực hiện khi phép and mang giá trị true. Và trong 1 khối lệnh if, đã thực hiện cái này thì sẽ thôi cái elif khác. Bạn có thể test mà, chạy thử xem, biết đâu có điều gì khác xảy ra
e có gõ những cái khác r nhưng nó chỉ chạy cái else cuối cùng thôi, ko biết làm tek nào để ct nó chay cái
elif này cả :((
Bạn thử gõ 2 lần liên tiếp “taunt bear” trong 2 lần gõ xem sao?
nó chạy dòng elif đấy r ạ tại sao lại tek hả a
Chương trình này thử việc kiểm soát bộ nhớ của Python, với cùng 1 lần chạy (có vòng lặp while true) thì giá trị của biến logic vẫn ko thay đổi, còn nếu bạn tắt đi rồi bật lên chạy tiếp thì vùng nhớ chứa biến logic bị giải phóng, đánh bao nhiêu lần “taunt bear” thì vẫn ko hiện ra đc cái ở dưới đâu
tek tức là có vòng lặp while true thì nó chạy lần lượt từng cái elif một hả a, hay như nào ạ?? khúc này khó hiểu quá a chỉ e với :’(
Có hay không thì cũng chạy lần lượt, tuy nhiên có vòng lặp While true thì phiên làm việc được lưu lại, tức là giá trị các biến sau mỗi vòng lặp không được giải phóng mà vẫn giữ giá trị được gán cuối cùng bạn nhé
cái if…elif này nó có giống vs switch case trong C lắm ko a???
Nó cũng là 1 loại câu lệnh rẽ nhánh giống vậy đó bạn, quá nhiều người ta mới dùng switch case.