Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách nhập nhiều giá trị từ người dùng trong một dòng trong Python


Để đọc nhiều biến trong ngôn ngữ C, chúng ta viết kiểu như:

// Đọc ba biến trong một dòng
scanf("%d %d %d", &x, &y, &z)

Hiện tại Python không có đối ứng với scanf(). Tuy nhiên, Python cung cấp regular expressions (biểu thức chính quy) mạnh mẽ và chi tiết hơn các chuỗi định dạng scanf(). Trong Python, để cung cấp nhiều giá trị từ người dùng, chúng ta có thể dùng:

Phương thức input(): nơi người dùng có thể nhập nhiều giá trị trong một dòng, như:

>>> x, y, z = input(), input(), input()
40 30 10
>>> x
'40'
>>> y
'30'
>>> z
'10'

Từ kết quả trên, bạn thấy chúng ta có thể gán giá trị cho ba biến trong một dòng.

Để tránh sử dụng nhiều phương thức input() (tùy thuộc vào số lượng giá trị chúng ta truyền), chúng ta có thể dùng list comprehension hoặc hàm map().

Truyền nhiều giá trị sử dụng list comprehension

>>> x, y, z = [int(x) for x in input().split()]
9 12 15
>>> x
9
>>> y
12
>>> z
15

Trong dòng code trên, tôi đã ép kiểu giá trị đầu vào thành số nguyên. Nếu bạn không muốn vậy và đầu vào của bạn là kiểu hỗn hợp, bạn có thể đơn giản viết:

>>> x, y, z = [x for x in input().split()]
40 10 "hello"

Sử dụng hàm map

Cách khác để truyền nhiều giá trị từ người dùng là dùng hàm map.

>>> x, y, z = map(int, input().split())
40 54 90
>>> x
40
>>> y
54
>>> z
90