Cách khởi động lại một chức năng trong Python
Bạn đang tự hỏi làm thế nào để khởi động lại chương trình Python của mình từ bên trong chính nó? . Bạn chỉ cần thêm một dòng vào chương trình của mình
Hãy làm điều này bằng cách sử dụng một ví dụ. Giả sử chúng ta có một chương trình lấy điểm từ người dùng và cho biết các nhận xét Show Ví dụ: nếu điểm là 90, thì nhận xét sẽ xuất sắc. Nếu người dùng nhập điểm chính xác thì chương trình sẽ chạy đúng Ngoài ra, để cho điểm chính xác, điểm đó phải là một số và nằm trong khoảng từ 0-100 Bây giờ nếu người dùng nhập điểm không hợp lệ, ta muốn chương trình hiển thị thông báo lỗi rồi khởi động lại. Chúng ta có thể dễ dàng làm như vậy bằng cách sử dụng dòng mã sau
subprocess.call([sys.executable, os.path.realpath(__file__)] + sys.argv[1:])
Đảm bảo nhập sys, os và sub process trước khi sử dụng dòng trên Mã hoàn chỉnh được đưa ra dưới đây
import os import sys import subprocess def calculateGrade(): try: val = float(input("Enter your marks: ")) if val >= 90 and val <= 100: print("Outstanding") elif val >= 80 and val < 90: print("Excellent") elif val >= 70 and val < 80: print("Very Good") elif val>= 60 and val < 70: print("Needs Improvement") elif val>=30 and val <60: print("Work hard") elif val>=0 and val<30: print("Poor") else: raise ValueError("Enter a valid score, i.e., between 0 and 100") except Exception as err: print("ERROR:", err) print("Restarting the program") print("------------------------") subprocess.call([sys.executable, os.path.realpath(__file__)] + sys.argv[1:]) #restart the program calculateGrade()
đầu ra Python Khởi động lại đầu ra chương trình
Trong ví dụ trên, khi người dùng nhập sai đầu vào, một ngoại lệ sẽ xuất hiện. Nó được xử lý trong khối ngoại trừ, nơi chúng tôi hiển thị thông báo lỗi và khởi động lại chương trình Marcel này các cậu. Là tôi, Marcel, hay còn gọi là Maschi. Trên MaschiTuts, đó là tất cả về hướng dẫn. Bất kể chủ đề của bài viết là gì, mục tiêu luôn giống nhau. Cung cấp cho các bạn những hướng dẫn chuyên sâu và hữu ích nhất Bạn có thể sử dụng hàm input() để khởi động lại vòng lặp while trong Python. Và sử dụng câu lệnh if để khởi động lại số vòng lặp Đây là cú pháp đơn giản cho nó, sử dụng logic của riêng bạn
Ví dụ khởi động lại vòng lặp while trong PythonMã ví dụ đơn giản khi vòng lặp khởi động lại nếu người dùng nhập “0”, nếu không vòng lặp sẽ chạy cho đến khi “i < 5”. Để dừng nó sử dụng câu lệnh break
đầu ra Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về Python trong khi mã vòng lặp này
Rohit Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật Vòng lặp while kiểm tra một điều kiện để xác định xem thân vòng lặp có được thực thi hay không. Bạn có thể đặt lại điều kiện về giá trị ban đầu để khởi động lại vòng lặp một cách hiệu quả Trong ví dụ sau, bạn sử dụng điều kiện vòng lặp i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart0 i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart Bạn sử dụng hàm i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart1 tích hợp sẵn của Python để lấy đầu vào của người dùng trong mỗi lần lặp và trả về dưới dạng một chuỗi Đây là một ví dụ chạy trong đó vòng lặp không được khởi động lại vì người dùng chưa bao giờ sử dụng i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart0 làm đầu vào (mọi dòng khác là đầu vào của người dùng, trong khi dòng thứ hai là đầu vào của người dùng đầu tiên)________số 8_______ Và đây là một ví dụ trong đó vòng lặp được khởi động lại ở lần lặp thứ ba do đầu vào của người dùng i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart0 i = 0 alice i = 1 bob i = 2 r i = 0 alice i = 1 bob i = 2 carl Trong trường hợp bạn cần xem lại nhanh về cách xử lý đầu vào của người dùng, hãy xem hướng dẫn này Hàm input() của Python [Sơ lược 6 phút] Xem video này trên YouTube Giải pháp 2. Vòng khởi động lại lồng nhauMột cách khác để buộc một vòng lặp khởi động lại nếu một điều kiện nhất định được đáp ứng là nhúng vòng lặp khởi động lại vào một vòng lặp while bên ngoài để thực hiện lặp lại nó cho đến khi đáp ứng một điều kiện thoát Đoạn mã sau cho biết cách thực hiện việc này trong Python restart = True while restart: for i in range(3): print('i =', i) # loop body # Default: execute once restart = False # Restart loop logic (any restart condition): if input() == 'r': restart = True break # force restart Chúng tôi tạo một khởi động lại biến ban đầu được đặt thành i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart4. Vòng lặp bên ngoài sẽ thực thi cho đến khi biến khởi động lại được đặt thành i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart5 Bây giờ, bạn chạy vòng lặp chính có khả năng phải được khởi động lại nếu một điều kiện nhất định được đáp ứng. Đoạn mã sử dụng điều kiện khởi động lại i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart6, vì vậy nếu người dùng nhập ký tự i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart0, vòng lặp sẽ được khởi động lại Quá trình khởi động lại được thực hiện bằng cách đặt lại biến khởi động lại thành i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart4, vì vậy vòng lặp bên ngoài sẽ chạy lại một lần nữa, điều đó có nghĩa là toàn bộ vòng lặp bên trong được khởi động lại Toàn bộ chu trình này được lặp lại cho đến khi điều kiện khởi động lại không bao giờ được đáp ứng. Điều này tự động đặt biến i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart9 thành i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart5, nghĩa là vòng lặp bên ngoài không được thực hiện lại, nghĩa là vòng lặp bên trong không được khởi động lại Đây là một ví dụ chạy khi vòng lặp không được khởi động lại vì người dùng chưa bao giờ sử dụng ____________0 làm đầu vào ________số 8_______Và đây là một ví dụ trong đó vòng lặp được khởi động lại ở lần lặp thứ ba do đầu vào của người dùng i = 0 while i < 3: print('i =', i) # loop body # Restart loop logic i = i + 1 if input() == 'r': i = 0 # force restart0 i = 0 alice i = 1 bob i = 2 r i = 0 alice i = 1 bob i = 2 carl Đi đâu từ đây?Đủ lý thuyết. Hãy thực hành một số Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì? Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không? 🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn Tham gia hội thảo trên web miễn phí ngay bây giờ Chris Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây |