Vòng lặp trong python

Hi chào các bác, mình muốn hỏi cách để chương trình python lấy từng dòng của một list các text mình nhập vào để chạy ( chương trình cần các text kia để chạy được ) đến khi hết list đó thì dừng ạ. Mình có thử vòng lặp while nhưng chỉ nhập được một lần và làm thế rất lâu ạ.

Nói khó hiểu quá :roll_eyes:
Có phải bạn đang làm kiểu này?

while True:
   text = input('Input something:')
   continue = input('Do you want to continue?(Y/N):')
   if continue == Y:
   ...
3 Likes

Do câu hỏi của bạn hơi khó hiểu, nên cũng không biết giải thích cách nào.
Câu trả lời của Moss Green mình nghĩ là phù hợp nhất với câu hỏi, nhưng vì bạn nói “làm thế rất lâu”, nên mình suggest cách khác, là

2 bước
#1. Làm cái vòng lặp while, để nhập hết các câu hỏi vào luôn cho xong
#2. Xài vòng lặp for để duyệt từng câu đã nhập

def do_something(text):
    print(text)


questions = []

while True:
    input_text = input('Your question (type "quit" to exit): ')
    if input_text == 'quit':
        break
    else:
        questions.append(input_text)


for question in questions:
    do_something(question)
3 Likes

Ý mình không phải cái này, mình ví dụ nhé. Bây giờ mình sẽ nhập vào một list:
"a
b
c "
Cho biến “sim” và lệnh print(sim)
Mình muốn chương trình sẽ lấy từng dòng của list trên để đưa vào sim sau đó chạy lệnh print. Kết là sẽ in ra từng dòng một của list kia á.

Gần như theo ý mình rồi ạ, nhưng mình muốn là nhập cùng một lúc nhiều text luôn ạ, sau đó chương trình sẽ xử lí từng dòng ( từng text ) kia.

Nếu nhu cầu của bạn như vậy, thì dễ nhất là nhập hết vô 1 file text, qua câu hỏi mới thì xuống dòng.
Sau đó lấy nội dung file text đó, read line by line (google theo keyword này) và bỏ hết vô trong list là xong.

4 Likes

Cảm ơn bác nhé, mình hiểu rồi. Mình còn một câu hỏi nữa, mình sẽ đặt điều kiện cho chương trình (dùng if), nếu phù hợp với điều kiện thì sẽ tự động print còn nếu không thì bỏ qua ( mình bị lấn cấn chỗ này )

có phải bạn đang muốn thế này:

def is_good_question(question):
   if some_conditions:
      return True
   return False

for question in questions:
   if is_good_question(question):
      printf(question)
1 Like

Mình chạy thử thì bị lỗi (mình đã bỏ ‘f’ ở print)

input từ bàn phím

while len(x:=input("hello ?\n")):
    # do thing
    print(x)

input từ file

with open(filepath) as f:
    lines = f.readlines()
    for line in lines:
        # do thing
        print(line)
3 Likes

mình đưa ra ý tưởng cho bạn thôi bạn ơi, cả cái some_conditions kia bạn đã thay chưa? :grinning: Học máy móc vậy. Ý tưởng là tạo ra 1 hàm return boolean để check

2 Likes

Hjhj mình thấy cái some_conditions có dấu gạch chân nên mình tưởng nó là phần gì đấy bạn cho sẵn luôn :nail_care:

Cảm ơn bạn nha :eggplant:

Chắc thứ bạn chủ thớt muốn là như thế này:

sim = []
print("Hãy nhập text. Khi muốn dừng hãy nhập 'stop'")
while True: 
    txt = input(">>")
    if txt == "stop":
        break
    sim.append(txt)

for value in sim:
    if value == 'c':
        print(value)

Ví dụ chạy, chúng ta nhập từ bàn phím

a
b
c
defg

Kết quả:

c

Tham khảo: Vòng lặp while True, lệnh break, lệnh if trong python, phương thức append().

2 Likes

Thanks bác, tui sẽ tham khảo.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?