Hot deal hosting vps vietnix tháng 2Hot deal hosting vps vietnix tháng 2
PHP
Python

Trang chủ

Tìm hiểu về User Input trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
07/02/2025
13 phút đọc
Theo dõi Vietnix trên

Tìm hiểu về User Input trong Python

User Input trong Python là một thành phần không thể thiếu để thu thập và xử lý dữ liệu trực tiếp từ người dùng. Bài viết này cung cấp cái nhìn tổng quan về User Input trong Python, đồng thời hướng dẫn bạn cách sử dụng các hàm để nhận dữ liệu nhập từ người dùng.

Các điểm chính

Khi đọc xong bài viết, bạn sẽ:

  • Hiểu rõ User Input là gì: Bạn sẽ nắm được khái niệm cơ bản về User Input và tầm quan trọng của nó trong việc tương tác với chương trình Python. Không còn mơ hồ về cách chương trình nhận dữ liệu từ người dùng nữa!
  • Nắm vững 2 hàm User Input phổ biến (input()raw_input()): Bạn sẽ được làm quen chi tiết với cú pháp, cách sử dụng và sự khác biệt giữa input()raw_input() 
  • Tự tay viết các đoạn code User Input đơn giản: Nhờ các ví dụ minh họa chi tiết, bạn sẽ có thể tự tin viết các chương trình nhỏ để nhận dữ liệu đầu vào từ người dùng và xử lý chúng.
  • Biết cách chuyển đổi dữ liệu User Input sang dạng số (int, float): Bạn sẽ không còn lúng túng khi cần nhận dữ liệu số từ người dùng nữa, mà sẽ biết cách chuyển đổi để thực hiện các phép toán hoặc thao tác số học khác.
  • Làm chủ cách sử dụng hàm Print() để hiển thị kết quả: Bạn sẽ biết cách kết hợp print() với User Input để tạo ra những chương trình tương tác thân thiện, hiển thị thông tin rõ ràng cho người dùng.

User Input trong Python là gì?

User Input trong Python là quá trình chương trình Python nhận dữ liệu đầu vào từ người dùng (thường thông qua bàn phím) khi chương trình đang chạy. Điều này cho phép người dùng tương tác trực tiếp với chương trình, cung cấp thông tin cần thiết để chương trình thực hiện các tác vụ cụ thể.

User Input trong Python là quá trình chương trình nhận dữ liệu đầu vào từ người dùng khi chương trình đang chạy
User Input trong Python là quá trình chương trình nhận dữ liệu đầu vào từ người dùng khi chương trình đang chạy

Mọi ứng dụng máy tính đều cần một cơ chế để nhận đầu vào (input) từ người dùng trong quá trình hoạt động. Cơ chế này tạo nên tính tương tác của ứng dụng. Tùy thuộc vào cách ứng dụng được xây dựng, đầu vào từ người dùng có thể là:

  • Văn bản nhập vào từ console (thông qua sys.stdin – chúng ta sẽ tập trung vào phần này).
  • Tương tác trên giao diện đồ họa (ví dụ: nhấn nút, nhập liệu vào ô văn bản).
  • Dữ liệu gửi qua giao diện web (ví dụ: điền vào biểu mẫu trên trang web).

Các hàm nhận User Input trong Python

Python cung cấp cho chúng ta hai hàm tích hợp sẵn để đọc dữ liệu đầu vào từ bàn phím:

  • Hàm input()
  • Hàm raw_input()

Trình thông dịch Python hoạt động ở hai chế độ tương tác (interactive) và kịch bản (scripted). Chế độ tương tác rất tốt cho việc đánh giá nhanh, nhưng lại kém hiệu quả khi cần thực thi lặp lại cùng một tập lệnh. Đối với việc thực thi lặp lại, chế độ kịch bản nên được sử dụng.

Hãy bắt đầu bằng cách viết một tập lệnh Python đơn giản:

#! /usr/bin/python3.11

ten = "Kiran"
thanh_pho = "Hyderabad"

print("Xin chào, tên tôi là", ten)
print("Tôi đến từ", thanh_pho)

Hãy lưu đoạn code trên thành một file hello.py và chạy file đó từ command-line (dòng lệnh). Đây là kết quả:

C:\python311> python hello.py
Xin chào, tên tôi là Kiran
Tôi đến từ Hyderabad

Chương trình này đơn giản chỉ in ra giá trị của hai biến đã được định nghĩa trong đó. Nếu bạn chạy lại chương trình nhiều lần, kết quả đầu ra vẫn sẽ hiển thị giống nhau mỗi lần. Nếu bạn muốn sử dụng chương trình cho một tên và thành phố khác, bạn có thể sửa đổi mã, thay đổi tên, chẳng hạn thành “Kiran” và thành phố thành “Hyderabad“. Mỗi lần bạn cần gán một giá trị khác, bạn sẽ phải sửa đổi chương trình, lưu lại và chạy, đây không phải là một cách làm lý tưởng.

Hàm input() trong Python

Rõ ràng, bạn cần một cơ chế nào đó để gán các giá trị khác nhau cho biến trong quá trình runtime – tức là khi chương trình đang chạy. Hàm input() của Python thực hiện chính xác công việc này. Cú pháp của hàm input() trong thư viện chuẩn của Python như sau:

>>> biến = input()

Khi trình thông dịch gặp hàm input(), trình thông dịch sẽ tạm dừng và đợi dữ liệu người dùng nhập vào từ luồng đầu vào thường là bàn phím cho đến khi phím Enter được nhấn. Chuỗi ký tự mà người dùng đã nhập có thể được lưu trữ trong một biến kiểu chuỗi để sử dụng sau này.

Ví dụ về hàm input() trong Python

#! /usr/bin/python3.11

name = input()
city = input()

print("Xin chào, tên tôi là", name)
print("Tôi đến từ", city)

Khi bạn chạy, bạn sẽ thấy con trỏ nhấp nháy chờ User Input. Nhập giá trị cho name và city. Sử dụng dữ liệu đã nhập, chương trình sẽ hiển thị đầu ra.

Ravi

Chennai

Xin chào, tên tôi là Ravi

Tôi đến từ Chennai

Bây giờ, các biến không được gán bất kỳ giá trị cụ thể nào trong chương trình. Mỗi khi bạn chạy, các giá trị khác nhau có thể được nhập vào. Vì vậy, chương trình của bạn đã trở nên thực sự tương tác.

Thêm lời nhắc vào hàm input()

Bạn có thể cung cấp một đoạn văn bản làm lời nhắc (prompt) bên trong hàm input(). Lời nhắc này sẽ xuất hiện trước con trỏ khi bạn chạy code.

#! /usr/bin/python3.11

name = input("Nhập tên của bạn: ")
city = input("Nhập thành phố của bạn: ")

print("Xin chào, tên tôi là", name)
print("Tôi đến từ", city)

Khi chạy chương trình, các thông điệp nhắc sẽ hiển thị, về cơ bản giúp người dùng biết được nên nhập thông tin gì. Ví dụ với lời nhắc và User Input:

Nhập tên của bạn:  An

Nhập thành phố của bạn: Hà Nội

Xin chào, tên tôi là An

Tôi đến từ Hà Nội

Giải thích code:

  • name = input("Nhập tên của bạn: "): Dòng này hiển thị lời nhắc “Nhập tên của bạn: ” và chờ User Input. Giá trị người dùng nhập vào sẽ được gán cho biến name.
  • city = input("Nhập thành phố của bạn: "): Tương tự, dòng này hiển thị lời nhắc và lưu giá trị người dùng nhập vào biến city.
  • Các lệnh print sau đó: sử dụng các giá trị từ namecity để tạo ra thông báo chào mừng.

Hàm raw_input() trong Python

Hàm raw_input() hoạt động tương tự như hàm input(). Điểm khác biệt duy nhất là hàm raw_input() có trong Python 2.7, và nó đã được đổi tên thành input() trong Python 3.6 trở lên. Cú pháp của hàm raw_input() như sau:

>>> var = raw_input([prompt text])

Ví dụ về hàm raw_input()

Lưu ý: Vì chúng ta đang sử dụng Python 3, nên nếu bạn thực thi đoạn code này bạn phải thay raw_input() thành input()

#! /usr/bin/python3.11

name = input("Nhập tên của bạn - ")  # Đã sửa thành input()
city = input("Nhập tên thành phố - ") # Đã sửa thành input()

print ("Xin chào, tên tôi là", name)
print ("Tôi đến từ", city)

Bạn sẽ thấy dấu nhắc chờ user input. Hãy nhập giá trị cho tên và thành phố. Chương trình sẽ hiển thị kết quả dựa trên dữ liệu bạn đã nhập:

Nhập tên của bạn –  An

Nhập tên thành phố –  Hà Nội

Xin chào, tên tôi là An

Tôi đến từ Hà Nội

Giải thích chương trình:

  • Các lệnh input() được thực hiện: Chương trình chờ User Input (người dùng nhập dữ liệu vào) sau khi hiện ra lời nhắc nhập (Ví dụ “Nhập tên của bạn”).
  • Dữ liệu từ người dùng sẽ được gán cho biến name (tên) và biến city (thành phố):
  • Các lệnh print sau đó sẽ sử dụng các biến này để hiển thị thông báo hoàn chỉnh:

Nhận giá trị số từ User Input trong Python

Hãy viết một mã Python chấp nhận chiều rộng và chiều cao của một hình chữ nhật từ người dùng và tính diện tích.

#! /usr/bin/python3.11

width = input("Enter width : ")
height = input("Enter height : ")

area = width*height
print ("Area of rectangle = ", area)

Chạy chương trình, và nhập chiều rộng và chiều cao.

Enter width: 20

Enter height: 30

Traceback (most recent call last):

  File “C:\Python311\var1.py”, line 5, in <module>

   area = width*height

TypeError: can’t multiply sequence by non-int of type ‘str’

Tại sao lại có lỗi TypeError ở đây? Lý do là Python luôn đọc User Input như một chuỗi. Do đó, width = “20”height = “30” là các chuỗi và rõ ràng bạn không thể thực hiện phép nhân hai chuỗi.

Để khắc phục vấn đề này, chúng ta sẽ sử dụng int(), một hàm built-in khác từ thư viện chuẩn của Python. Hàm int() chuyển đổi một đối tượng chuỗi thành một số nguyên. Để chấp nhận một User Input số nguyên, đọc đầu vào trong một chuỗi và ép kiểu về số nguyên với hàm int():

w = input("Enter width : ")
width = int(w)

h = input("Enter height : ")
height = int(h)

Bạn có thể kết hợp câu lệnh input và ép kiểu trong một dòng:

#! /usr/bin/python3.11

width = int(input("Enter width : "))
height = int(input("Enter height : "))

area = width*height
print ("Area of rectangle = ", area)

Bạn có thể nhập bất kỳ giá trị nguyên nào vào hai biến trong chương trình:

Enter width: 20

Enter height: 30

Area of rectangle =  600

Hàm float() của Python chuyển đổi một chuỗi thành một đối tượng số thực (float). Chương trình sau đây chấp nhận User Input và phân tích cú pháp thành biến rate (kiểu float) và tính tiền lãi của một số tiền cũng là do User Input.

#! /usr/bin/python3.11

amount = float(input("Enter Amount : "))
rate = float(input("Enter rate of interest : "))

interest = amount*rate/100
print ("Amount: ", amount, "Interest: ", interest)

Chương trình yêu cầu User Input, nhập vào số tiền và lãi suất, kết quả được hiển thị:

Enter Amount: 12500

Enter rate of interest: 6.5

Amount:  12500.0 Interest:  812.5

Hàm Print() trong Python

Hàm print() của Python là một hàm built-in (tích hợp sẵn). Đây là hàm được sử dụng thường xuyên nhất, có chức năng hiển thị giá trị của biểu thức Python được đặt trong dấu ngoặc đơn lên console (màn hình) của Python, hoặc đầu ra tiêu chuẩn (standard output – sys.stdout).

print ("Hello World ")

Bên trong dấu ngoặc đơn có thể chứa bất kỳ số lượng biểu thức Python nào. Các biểu thức này phải được phân tách bằng dấu phẩy. Mỗi phần tử trong danh sách có thể là bất kỳ đối tượng Python nào, hoặc một biểu thức Python hợp lệ.

#! /usr/bin/python3.11

a = "Hello World"
b = 100
c = 25.50
d = 5+6j
print ("Message:", a)
print (b, c, b-c)
print(pow(100, 0.5), pow(c,2))

Kết quả đầu ra khi thực thi code là:

Message: Hello World

100 25.5 74.5

10.0 650.25

Trong ví dụ này:

  • print ("Message:", a): hiển thị một chuỗi ký tự "Message:" và giá trị của biến a.
  • print (b, c, b-c): in ra giá trị của hai biến b, c và kết quả của phép trừ b-c.
  • print(pow(100, 0.5), pow(c,2)): sử dụng hàm pow() để tính căn bậc hai của 100 và bình phương của biến c, rồi in kết quả ra.

Nếu có nhiều đối tượng được phân tách bằng dấu phẩy trong dấu ngoặc đơn của hàm print(), các giá trị sẽ được phân tách bằng một khoảng trắng " " theo mặc định. Để sử dụng bất kỳ ký tự nào khác làm dấu phân cách, hãy định nghĩa tham số sep cho hàm print(). Tham số sep này phải nằm sau danh sách các biểu thức cần in.

Trong kết quả đầu ra sau của hàm print(), các biến được phân tách bằng dấu phẩy.

#! /usr/bin/python3.12

city="Hyderabad"
state="Telangana"
country="India"
print(city, state, country, sep=',')

Kết quả, với tác động của sep=',', sẽ như sau:

Hyderabad,Telangana,India

Giải thích Tham số sep:

  • sep là viết tắt của “separator” (dấu phân cách).
  • Tham số sep: quy định ký tự (hoặc chuỗi ký tự) được sử dụng để phân tách giữa các giá trị khi in ra.
  • Nếu không chỉ định sep, giá trị mặc định là một khoảng trắng " ".

Mặc định, hàm print() sẽ thêm một ký tự xuống dòng ('\n') vào cuối. Do đó, kết quả đầu ra của câu lệnh print() tiếp theo sẽ xuất hiện ở dòng tiếp theo trên console.

city="Hyderabad"
state="Telangana"
print("City:", city)
print("State:", state)

Kết quả sẽ là:

City: Hyderabad

State: Telangana

Để làm cho hai dòng này xuất hiện trên cùng một dòng, hãy sử dụng tham số end trong hàm print() đầu tiên và đặt end thành một chuỗi khoảng trắng " ".

city="Hyderabad"
state="Telangana"
country="India"

print("City:", city, end=" ")
print("State:", state)

Kết quả đầu ra của cả hai hàm print() sẽ xuất hiện liên tiếp:

Giải thích Tham số end:

  • end: là tham số cho bạn chỉ định ký tự hoặc chuỗi ký tự thêm vào cuối của kết quả.
  • Mặc định thì Python sẽ tự thêm ký tự xuống dòng (\n) vào sau cùng, do đó, nếu không khai báo end các lần print() liên tục sẽ xuống dòng.
  • Thay end = " " để Python tự thêm khoảng trắng thay vì xuống dòng.

Lời kết

Vậy là chúng ta đã cùng nhau tìm hiểu về User Input trong Python, từ khái niệm cơ bản, các hàm thường dùng như input(), raw_input(), đến cách nhận giá trị số và sử dụng hàm print(). Hy vọng những kiến thức này sẽ giúp bạn nắm vững cách tương tác với người dùng trong các chương trình Python của mình.

Mọi người cũng đọc

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn