Người dùng python chọn từ danh sách

Tôi đang thực hiện một dự án máy tính Python và tôi tự hỏi liệu có cách nào để cho phép người dùng chọn từ danh sách các mục "đầu vào" tiềm năng hay không, giống như một phần mở rộng của hàm nhập liệu

3 năm trước

cử tri

CrapCodes

ArchieMaclean

Không có chức năng tích hợp

Bạn có thể muốn làm một cái gì đó như thế này, để tự viết mã

def choose_from_list(list): # a function called choose_from_list gets users choice from list print("Choose from the following:\n") print("\n".join(list)) # prints the list separated by \n (newline character) ans = input() # gets input while ans not in list: # if the user typed in something not in the list print("That's not an option.") ans = input("Choose again please: ") return ans # return what the user chose my_list = ["apple","banana","pear"] user_choice = choose_from_list(my_list)

Tất nhiên, bạn có thể thay đổi điều này để phù hợp với bất cứ điều gì bạn muốn làm

Please mark this as the answer if it solved your problem . )

3 năm trước

ArchieMaclean

@CrapCodes Bạn chỉ có thể sử dụng hàm nếu muốn mà không cần hiểu nó

Bạn có thể đánh dấu nó là câu trả lời để mọi người biết vấn đề của bạn đã được giải quyết không?

3 năm trước

CrapCodes

@ArchieMaclean Xin lỗi, đã lâu rồi tôi không bật hoặc mã hóa bất cứ thứ gì. Mới bắt đầu tìm hiểu và triển khai thực tế ngay bây giờ

Thử thách này lấy cảm hứng từ câu chuyện về nhà toán học Carl Friedrich Gauss. Chuyện kể rằng, khi Gauss còn học tiểu học, một ngày nọ, giáo viên của anh ấy đã nổi giận với cả lớp.

"Tôi sẽ khiến các bạn bận rộn một lúc", giáo viên nghiêm khắc nói với cả nhóm. "Bạn phải cộng các số từ 1 đến 100, và bạn không được nói một lời nào cho đến khi bạn làm xong. "

Giáo viên mong đợi một khoảng thời gian yên tĩnh, nhưng một lúc sau, nhà toán học tương lai của chúng ta đã giơ tay với câu trả lời. "Là 5050. " Gauss đã nhận ra rằng nếu bạn liệt kê tất cả các số từ 1 đến 100, bạn luôn có thể khớp số đầu tiên và số cuối cùng trong danh sách và nhận được một câu trả lời chung

1, 2, 3, ..., 98, 99, 100
1 + 100 = 101
2 + 99 = 101
3 + 98 = 101

Gauss nhận ra có đúng 50 cặp số trong phạm vi từ 1 đến 100 nên ông đã làm một phép tính nhanh. 50 * 101 = 5050

Nhà phát triển cần giao tiếp với người dùng để thu thập dữ liệu hoặc để tạo ra kết quả. Nhiều ứng dụng ngày nay sử dụng các cách khác nhau để yêu cầu một dạng đầu vào nhất định từ người dùng. Python cung cấp cho chúng tôi các tính năng tích hợp để lấy đầu vào. Phiên bản mới nhất của Python sử dụng phương thức input() trong khi phiên bản cũ hơn sử dụng phương thức raw_input().  

Để làm điều này, chúng ta phải nhấp vào nút Enter sau khi nhập giá trị từ bàn phím. Hàm input() sau đó đọc giá trị của người dùng. Hàm đầu vào đọc một dòng từ bảng điều khiển, sau đó chuyển đổi nó thành một chuỗi và trả về nó.  

Để đọc về Self in Python, hãy nhấp vào đây

Cú pháp của hàm input()

Cú pháp của hàm input() là.  

input(prompt) 

Trong bảng điều khiển, chuỗi lời nhắc được in ra và người dùng được lệnh nhập giá trị. You should print some useful information to help the user enter the expected value.  

Nhận đầu vào của người dùng bằng Python

Hàm input() nhận thông tin người dùng nhập từ bàn phím và lưu thông tin đó vào một tên biến. Herestris một biến và hàm print() in biến đó ra màn hình.  

Getting User Input in Python

Hàm input() trì hoãn việc thực thi chương trình để cho phép người dùng nhập thông tin đầu vào từ bàn phím. Khi nhấn Enter, tất cả các ký tự được đọc và trả về dưới dạng chuỗi

Đầu vào chuỗi từ người dùng

Thí dụ

Dưới đây là một ví dụ về việc nhận đầu vào của người dùng và in nó trên bảng điều khiển.  

str = input(“Enter your name: “) 
print(str) 

đầu ra.  

Enter your name: Joseph 
Joseph 

Float Đầu vào từ người dùng

Chúng tôi sẽ sử dụng hàm float() để chuyển đổi đầu vào nhận được thành giá trị float.  

Thí dụ

value = float(input("Enter a value: ")) 
print(value) 

đầu ra.  

Enter a value: 200.99 
200.99 

Làm cách nào để lấy Số nguyên làm Đầu vào của Người dùng?

Hàm đầu vào chuyển đổi bất cứ thứ gì bạn nhập dưới dạng đầu vào thành một chuỗi. Nếu bạn nhập một giá trị số nguyên, thì hàm input() sẽ chuyển đổi giá trị đó thành một chuỗi.  

Để sử dụng các số nguyên, chúng ta có thể sử dụng các hàm có sẵn để chuyển đổi nó thành một số nguyên.  

Thí dụ.  

value =input("Enter an integer:\n") 
value =int(value) 
print(f'The entered number is {value} and its square is {value ** 2}') 

đầu ra.  

________số 8

Thí dụ.  

# take multiple inputs in array  
input_str_array = input().split()  
print("array:", input_str_array)  
# take multiple inputs in array  
input_int_array = [ int(x) for x in input().split()]  
print("array:", input_int_array) 

đầu ra.  

1, 2, 3, ..., 98, 99, 100
1 + 100 = 101
2 + 99 = 101
3 + 98 = 101

0Integer as the User Input example

Đầu vào của người dùng Python và Ví dụ về Lỗi EOF.

EOFError trong python là một trong những trường hợp ngoại lệ để xử lý lỗi và được phát sinh trong các trường hợp chẳng hạn như hàm input() bị gián đoạn trong cả python phiên bản 2. 7 và trăn phiên bản 3. 6 cũng như các phiên bản khác sau phiên bản 3. 6 hoặc khi hàm input() chạy đến cuối tệp không mong muốn trong python phiên bản 2. 7, tôi. e. các hàm không đọc bất kỳ dữ liệu nào trước khi gặp phải kết thúc đầu vào.   

Các phương thức như read() phải trả về một chuỗi trống ở cuối tệp, chuỗi này được kế thừa trong Python từ lớp ngoại lệ được kế thừa trong lớp BaseException. Lỗi này thường xảy ra với các IDE trực tuyến.  

Nếu hàm theinput() không đọc bất kỳ dữ liệu nào thì mã python sẽ đưa ra một ngoại lệ. e. EOFLỗi.  

1, 2, 3, ..., 98, 99, 100
1 + 100 = 101
2 + 99 = 101
3 + 98 = 101

1

đầu ra.  

str = input(“Enter your name: “) 
print(str) 
0

Hoạt động của EOFError trong Python.  

  1. Lớp BaseException kế thừa lớp EOFError làm lớp cơ sở của lớp Exception.  
  2. EOFError về mặt kỹ thuật không phải là lỗi, mà là một ngoại lệ. Khi các hàm tích hợp sẵn, chẳng hạn như hàm input() hoặc hàm read() trả về một chuỗi trống mà không đọc bất kỳ dữ liệu nào, ngoại lệ EOFError sẽ xuất hiện.  
  3. Ngoại lệ này được đưa ra nếu phần mềm của chúng tôi cố gắng truy xuất bất kỳ thứ gì và thực hiện các thay đổi đối với nó, nhưng nếu không có dữ liệu nào được đọc và một chuỗi được trả về, thì ngoại lệ EOFError sẽ được đưa ra.  

Các bước để tránh EOFError trong Python.  

Nếu Lỗi kết thúc tệp hoặc EOFError xảy ra, thì ngoại lệ EOFError được đưa ra mà hàm input() không đọc bất kỳ thông tin nào. Chúng ta nên cố gắng nhập một cái gì đó như CTRL + Z hoặc CTRL + D trước khi gửi ngoại lệ Kết thúc tệp để ngăn việc tăng ngoại lệ này.  

Thí dụ.  

str = input(“Enter your name: “) 
print(str) 
1

đầu ra.  

str = input(“Enter your name: “) 
print(str) 
2

Giải trình. Trong chương trình trên, hãy cố gắng ngăn ngoại lệ EOFError bằng một chuỗi trống. Chuỗi này không in thông báo lỗi của End Of Tệp mà in thông báo được cá nhân hóa được hiển thị trong chương trình và in thông báo tương tự trên đầu ra.  

Bạn có thể sử dụng khối thử và bắt nếu ngoại lệ EOFError được xử lý.  

Ví dụ về lựa chọn đầu vào của người dùng Python.  

Python cung cấp hệ thống nhập liệu trắc nghiệm. Trước tiên, bạn phải lấy đầu vào bàn phím bằng cách gọi hàm theinput(). Sau đó đánh giá lựa chọn bằng cách sử dụng cấu trúc if-elif-else.  

str = input(“Enter your name: “) 
print(str) 
3

đầu ra.  

str = input(“Enter your name: “) 
print(str) 
4 User Input Choice Example

Hàm raw_input() của Python.

Hàm raw_input trong Python là một hàm tích hợp được sử dụng để lấy các giá trị từ người dùng. Chức năng này chỉ được sử dụng trong các phiên bản cũ hơn của Python i. e. Trăn 2. phiên bản x.   

  • Hai chức năng có sẵn trong Python 2. x để lấy giá trị người dùng. Đầu tiên là hàm đầu vào và thứ hai là hàm raw_input().   
  • Hàm raw_input trong python 2. x được khuyến nghị cho các nhà phát triển. Điều này là do chức năng nhập liệu dễ bị tổn thương trong phiên bản 2. x của Python

Trăn 2. thiết lập môi trường x.  

Hệ thống của bạn phải cài đặt Python 2 để có thể sử dụng hàm input() thô. Sử dụng python2 thay vì python hoặc Python3 nếu bạn chạy chương trình của mình từ thiết bị đầu cuối. Do đó, lệnh mẫu thực thi là.  

str = input(“Enter your name: “) 
print(str) 
5

Nó phụ thuộc vào cách python của bạn đã cài đặt. Tóm lại, bạn phải chạy chương trình Python của mình bằng phiên bản python 2. x if you use raw_input function.  

Bạn có thể sửa đổi trình biên dịch python của mình nếu bạn sử dụng PyCharm IDE. Chuyển đến Tệp -> Cấu hình -> Dự án -> Phiên dịch dự án cho mục đích đó. Sau đó selectpython 2. x từ danh sách