Bài tập input trong python

Bài toán cần xử lý

Viết chương trình nhập vào từ file input {Tên}, {Tuổi hiện tại} và xuất ra file output theo mẫu sau: “Vao 20 nam nua, tuoi cua {Tên} se la {Tuổi cần tìm}”. 

Kiến thức cần có

  • Mở file, đóng file
  • Câu lệnh with làm việc với file trong Python
  • Hàm đọc file readline() và hàm ghi file write()
  • Định dạng chuỗi đầu ra trong Python
  • Các phương thức xử lý chuỗi: rstrip()
  • Biến và kiểu dữ liệu

Định dạng đầu vào

Dữ liệu đầu vào lưu trữ trong file "Bai1.10.inp"

Gồm hai dòng:

  • Dòng đầu tiên chứa {Tên}
  • Dòng thứ hai chứa số nguyên dương {Tuổi hiện tại}

Định dạng đầu ra

Dữ liệu đầu ra lưu trữ trong file "Bai1.10.out"

Gồm một dòng duy nhất hiển thị như sau:

  • Vao 20 nam nua, tuoi cua {Ten} se la {Tuoi can tim}

Ví dụ

  • Input 1: Bai1.10.inp
John 10
  • Output 1: Bai1.10.out
Vao 20 nam nua, tuoi cua John se la 30
  • Input 2: Bai1.10.inp
Kteam 5
  • Output 2: Bai1.10.out
Vao 20 nam nua, tuoi cua Kteam se la 25

Gợi ý

  • Sử dụng câu lệnh with với hàm open() mode='r' nhằm mở file để đọc.
  • Dùng hàm readline() để đọc dữ liệu dòng đầu tiên từ file input và lưu vào biến
  • Sử dụng phương thức rstrip() để loại bỏ ký tự '\n' ở bên phải vì giá trị nhận được khi sử dụng hàm readline() bao gồm cả ký tự xuống dòng.
  • Tiếp tục dùng hàm readline() để đọc dòng giá trị thứ hai và lưu vào biến.
  • Chuyển giá trị mới nhận được sang kiểu số nguyên vì giá trị nhận được từ hàm readline() mặc định sẽ ở kiểu chuỗi.
  • Sử dụng câu lệnh with với hàm open() mode='w' nhằm mở file để ghi.
  • Dùng hàm write() kết hợp với hàm format() để hiển thị kết quả theo mẫu.

Code mẫu

#Mo file voi mode='r' de doc file with open('Bai1.10.inp', 'r') as fileInp:    #Doc 1 dong du lieu tu file va luu vao bien ten    #Su dung phuong thuc rstrip de loai bo ky tu xuong dong '\n'    ten = fileInp.readline().rstrip('\n')    #Doc 1 dong du lieu tu file va luu vao bien tuoiHienTai    tuoiHienTai = int(fileInp.readline()) #Mo file voi mode='w' de ghi file with open('Bai1.10.out', 'w') as fileOut:    #Ghi noi dung vao file theo mau    fileOut.write('Vao 20 nam nua, tuoi cua {} se la {}'.format(ten, tuoiHienTai + 20))

Kết luận

Trong bài này, Kteam đã hướng dẫn bạn cách viết chương trình nhập vào từ file input {Tên}, {Tuổi hiện tại} và xuất ra file output theo mẫu sau: “Vao 20 nam nua, tuoi cua {Tên} se la {Tuổi cần tìm}”. 

Ở bài tiếp theo, chúng ta sẽ cũng nhau học cách viết chương trình NHẬP TỪ FILE INPUT {TÊN}, {TUỔI HIỆN TẠI} VÀ XUẤT RA FILE OUTPUT THEO MẪU (CÓ XỬ LÝ ĐỊNH DẠNG ĐẦU VÀO).

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên " Luyện tập - Thử Thách - Không ngại khó!"

Tải xuống

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

  • Login
  • Register

with your social network

OR

Resend activation email

Not a member? Register

I can't rememeber my password

This site is protected by reCAPTCHA and Terms of Use apply.

I agree to the Terms and Conditions of CodeLearn

Already registered? Login

Python cung cấp sẵn hàm input() để giúp chúng ta nhập dữ liệu cần thiết từ bàn phím cho chương trình. Ví dụ:

val = input("Enter your value: ") print(val) num = input ("Enter number: ") print(num) name1 = input("Enter name: ") print(name1) # Printing type of input value print ("type of val is ", type(val)) print ("type of num is ", type(num)) print ("type of name1 is ", type(name1)) Kết quảEnter your value: 5 5 Enter number: 9 9 Enter name: gochocit.com gochocit.com type of val is <class 'str'> type of num is <class 'str'> type of name1 is <class 'str'>

Khi hàm input() thực thi, luồng chương trình sẽ bị dừng lại cho đến khi người dùng nhập ký tự gì đó vào.

Lưu ý: Bất cứ thứ gì chúng ta nhập vào, hàm input() sẽ chuyển đổi nó thành một chuỗi. Nếu chúng ta nhập một số nguyên thì hàm input() vẫn chuyển nó thành một chuỗi. Do đó, chúng ta có thể chuyển đổi sang kiểu dữ liệu số với các hàm được hỗ trợ sẵn trong Python. Ví dụ:

val = input("Enter your value:") num = input ("Enter number:") name1 = input("Enter name:") # Convert data type val = int(val) print(val) num = float(num) print(num) print(name1) # Printing type of input value print ("type of val is ", type(val)) print ("type of num is ", type(num)) print ("type of name1 is ", type(name1)) Kết quảEnter your value:5 Enter number:9 Enter name:gochocit.com 5 9.0 gochocit.com type of val is <class 'int'> type of num is <class 'float'> type of name1 is <class 'str'>

Chúng ta cũng có thể chuyển đổi input() thành integer, floatstringnhư sau:

# input print("input integer:") num1 = int(input()) num2 = int(input()) # printing the sum in integer print("sum of num1 and num2 = ", num1 + num2) # input print("input float:") num1 = float(input()) num2 = float(input()) # printing the sum in float print("sum of num1 and num2 = ", num1 + num2) # input print("input string:") string = str(input()) # output print(string) Kết quảinput integer: 5 2 sum of num1 and num2 = 7 input float: 2.1 5.0 sum of num1 and num2 = 7.1 input string: gochocit.com gochocit.com

Nhập nhiều giá trị từ user trong Python

Sử dụng hàm split()

Giúp nhận được nhiều giá trị nhập vào từ user. Mỗi giá trị được cách nhau bởi một dấu phân cách (separator). Mặc định, separator là khoảng trắng. Cú pháp:

input().split(separator, maxsplit)

Trong đó, separator là dấu phân cách, mặc định là khoảng trắng. Tham số maxsplit là số giá trị tối đa được nhập vào từ user.

Ví dụ:

# taking two inputs at a time x, y = input("Enter two values: ").split() print("Number of boys: ", x) print("Number of girls: ", y) # taking two inputs at a time with comma (,) x, y = input("Enter two values: ").split(",") print("Number of boys: ", x) print("Number of girls: ", y) # taking three inputs at a time x, y, z = input("Enter three values: ").split() print("Total number of students: ", x) print("Number of boys is : ", y) print("Number of girls is : ", z) # taking two inputs at a time a, b = input("Enter two values: ").split() print("First number is {} and second number is {}".format(a, b)) # taking multiple inputs at a time # and type casting using list() function x = list(map(int, input("Enter multiple values: ").split())) print("List of numbers: ", x) Kết quảEnter two values: 5 9 Number of boys: 5 Number of girls: 9 Enter two values: 5,9 Number of boys: 5 Number of girls: 9 Enter three values: 1 7 3 Total number of students: 1 Number of boys is : 7 Number of girls is : 3 Enter two values: 9 8 First number is 9 and second number is 8 Enter multiple values: 7 8 1 2 3 List of numbers: [7, 8, 1, 2, 3]

Sử dụng list comprehension

Đây là cách đơn giản đề tạo một list trong Python. Nhưng chúng ta cũng có thể sử dụng để nhập nhiều giá trị vào chương trình từ user.

# taking two input at a time x, y = [int(x) for x in input("Enter two values: ").split()] print("First Number is: ", x) print("Second Number is: ", y) # taking three input at a time x, y, z = [int(x) for x in input("Enter three values: ").split()] print("First Number is: ", x) print("Second Number is: ", y) print("Third Number is: ", z) # taking two inputs at a time x, y = [int(x) for x in input("Enter two values: ").split()] print("First number is {} and second number is {}".format(x, y)) # taking multiple inputs at a time x = [int(x) for x in input("Enter multiple values: ").split()] print("Number of list is: ", x) Kết quảEnter two values: 5 9 First Number is: 5 Second Number is: 9 Enter three values: 5 7 9 First Number is: 5 Second Number is: 7 Third Number is: 9 Enter two values: 1 2 First number is 1 and second number is 2 Enter multiple values: 1 5 7 8 9 Number of list is: [1, 5, 7, 8, 9]

2. Xuất (output) trong Python

Python hỗ trợ sẵn hàm print() để in dữ liệu ra màn hình. Cú pháp:

print(value(s), sep= ‘ ‘, end = ‘\n’, file= sys.stdout, flush=False)

Trong đó:

  • value(s): các giá trị sẽ được chuyển thành chuỗi để in ra màn hình.
  • sep=’ ’: tham số tùy chọn, có thể có hoặc không. Xác định dấu phân cách giữa các value muốn in ra trong trường hợp có nhiều value. sep mặc định là ’ ‘.
  • end=’\n’: tham số tùy chọn, có thể có hoặc không. Xác định ký tự được in ra cuối cùng. end mặc định là ‘\n’.
  • file: tham số tùy chọn, có thể có hoặc không. Xác định đối tượng nhận value để in ra. Mặc định là sys.stdout (được in ra màn hình).
  • flush: tham số tùy chọn, có thể có hoặc không. Nếu là Truethì không lưu value vào bộ nhớ đệm. Nếu là Falsethì lưu value vào bộ nhớ đệm. Mặc định là False.

Ví dụ:

print("Gochocit.com") print("Welcome to \n Gochocit.com") print("Hello!", end= "**") print("Welcome to Gochocit.com") b = "to" print("Welcome", b, "Gochocit.com") print("Welcome", b, "Gochocit.com", sep="-") x = 5 print("x =", x) Kết quảGochocit.com Welcome to Gochocit.com Hello!**Welcome to Gochocit.com Welcome to Gochocit.com Welcome-to-Gochocit.com x = 5

Xuất (output) với định dạng (format)

Chúng ta có thể định dạng giá trị xuất lên màn hình với hàm str.format().

x = 5; y = 10 print('The value of x is {} and y is {}'.format(x,y)) print('I love {0} and {1}'.format('bread','butter')) print('I love {1} and {0}'.format('bread','butter')) Kết quảThe value of x is 5 and y is 10 I love bread and butter I love butter and bread

Trong ví dụ trên, chúng ta sử dụng dấu ngoặc nhọn {} đánh dấu giữ chổ giá trị được in ra. Chúng ta cũng có thể chỉ định thứ tự mà các giá trị được in ra với các chỉ số.

Chúng ta có thể sử dụng các đối số là các từ khóa do chúng ta tự định nghĩa để định dạng chuỗi.

print('Hello {name}, {greeting}'.format(greeting = 'Welcome to Gochocit.com', name = 'John'))Kết quảHello John, Welcome to Gochocit.com

Chúng ta cũng có thể định dạng chuỗi giống như hàm printf() trong ngôn ngữ C++ với toán tử %.

x = 12.3456789 print('The value of x is %3.2f' %x) print('The value of x is %3.4f' %x) y = 5 name = "Gochocit.com" print("num = %d" %y); print("My name is %s" %name); Kết quảThe value of x is 12.35 The value of x is 12.3457 num = 5 My name is Gochocit.com

Ở bài này, chúng ta đã tìm hiểu về nhập xuất (input/output) cơ bản trong Python. Ở bài tiếp theo, chúng ta sẽ tìm hiểu về bộ nhớ biến và quản lý bộ nhớ trong Python.

  • Thuật toán tìm kiếm tuyến tính (Linear Search)
  • Namespace trong PHP dùng để làm gì?
  • Giới thiệu môn học Phương pháp lập trình hướng đối tượng
  • Các thao tác trên cấu trúc dữ liệu Tuple trong Python
  • Hàm lambda trong Python là gì?

Chủ đề