Python viết chương trình nhập từ bàn phím một số nguyên n (0

Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Python liệt kê các số nguyên tố không quá n.


Yêu cầu kiến thức:

  • Áp dụng vòng lặp for trong Python để ràng buộc số lần lặp
  • Kiểm tra tính chất của số nguyên tố

Code tham khảo dưới đây được viết bằng Python 3.8:

# Ho ten: Hoang Van Tuan # Website: timoday.edu.vn import math def isPrimeNum(n): if n < 2: return False tg = int(math.sqrt(n)) for i in range(2, tg + 1): if (n % i) == 0: return False return True n = int(input('Nhap vao so nguyen duong n = ')) print('Cac so nguyen to khong qua ', n, ' la:') if n >= 2: print(2) for i in range(3, n + 1): if isPrimeNum(i): print(i) i = i + 2


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Hướng dẫn cách nhập số trong python. Bạn sẽ học được tất cả các cách nhập số trong python trong python sau bài học này.

Chúng ta có 3 phương pháp để nhập số trong python như sau:

  • int(input()) trong python: nhập số nguyên trong python
  • float(input()) trong python: nhập số thực trong python
  • vòng lặp for hoặc While True: nhập dãy số từ bàn phím python

Ngoài ra, bạn cũng có thể tìm hiểu thêm cách nhập chuỗi và list trong python tại bài viết Nhập chuỗi và list trong python.

Lỗi logic xảy ra khi bạn nhập 1 số trong python

Khi bạn nhập 1 số trong python mà không có xử lý gì thêm, do hàm input() sẽ xử lý số nhập vào từ bàn phím và trả về kết quả dưới dạng chuỗi, nên kết quả số bạn nhập vào sẽ ở dạng chuỗi str mà thôi.

num = input("Nhập 1 số trong python : ")
print(type(num))
print(num)




Khi đó nếu bạn không để ý mà đem kết quả nhập từ bàn phím này đi tính toán với các số khác, lỗi sẽ xảy ra như sau:

num = input("Nhập 1 số trong python : ")
print(num + 2)





Lỗi xảy ra là do bạn đã cộng một chuỗi string với một số int.

Lại nữa, nếu bạn sử dụng kết quả nhập từ bàn phím với toán tử * thì kết quả phép tính sẽ là phép lặp chuỗi trong Python chứ không phải là phép nhân giữa 2 số với nhau.

num = input("Nhập 1 số trong python : ")
print(num * 2)



  • Xem thêm: Nối chuỗi và lặp chuỗi trong python.

Do đó, sau khi nhập 1 số trong python, chúng ta cần thêm các xử lý chuyển kiểu dữ liệu của kết quả nhập vào sang kiểu số (int hoặc float), trước khi thực hiện các tính toán với số đó.

Nhập số nguyên python | int(input()) trong python

Để nhập số nguyên python, chúng ta nhập số đó từ bàn phím bằng cách sử dụng hàm nhập input(), và sau đó chuyển kiểu dữ liệu của kết quả nhập sang kiểu số thực bằng cách sử dụng hàm int() trong Python.

  • Xem thêm: Hàm int() trong python

Ví dụ:

val = input('Enter number: ')
print(val)
print(type(val))




num = int(val)
print(type(num))
print(num)


Chúng ta có thể viết gọn các dòng code trên bằng cách sử dụng tới cú pháp int(input()) trong python như sau:

val = int(input('Enter number: '))
print(val)
print(type(val))



Sau khi đã chuyển kết quả nhập dữ liệu sang dạng int như trên, chúng ta có thể tiến hành các phép toán với số nguyên một cách bình thường. Ví dụ:

val = int(input('Enter number: '))
print(val + 2)
print(val - 2)
print(val * 2)
print(val / 2)





  • Xem thêm: Toán tử số học trong Python

Nhập số thực python | float(input()) trong python

Để nhập số thực python, chúng ta nhập số đó từ bàn phím bằng cách sử dụng hàm nhập input(), và sau đó chuyển kiểu dữ liệu của kết quả nhập sang kiểu số thực bằng cách sử dụng hàm float() trong Python.

  • Xem thêm: Hàm float() trong python

Ví dụ:

val = input('Enter number: ')
print(val)
print(type(val))




num = float(val)
print(type(num))
print(num)


Chúng ta có thể viết gọn các dòng code trên bằng cách sử dụng tới cú pháp float(input()) trong python như sau:

val = float(input('Enter number: '))
print(val)
print(type(val))



Sau khi đã chuyển kết quả nhập dữ liệu sang dạng float như trên, chúng ta có thể tiến hành các phép toán với số thực một cách bình thường. Ví dụ:

val = float(input('Enter number: '))
print(val + 2)
print(val - 2.032)
print(val * 9.1)
print(val / 4.6)





  • Xem thêm: Toán tử số học trong Python

Nhập dãy số từ bàn phím python

Nhập dãy số trong python có giới hạn số phần tử

Để nhập dãy số trong python, chúng ta có thể đơn giản lặp lại hàm input() với số lần cụ thể, và chuyển kết quả về dạng int hoặc float bằng cú pháp cú pháp int(input()) trong python hoặc cú pháp float(input()) trong python như sau:

x = int(input("Nhập 1 số:"))
y = int(input("Nhập 1 số:"))
z = int(input("Nhập 1 số:"))
print("Dãy số:",x,y,z)

Màn hình nhập dữ liệu như sau:

Nhập 1 số:20
Nhập 1 số:30
Nhập 1 số:40
Dãy số: 20 30 40

Tuy nhiên khi cần nhập một dãy số có chứa nhiều phần tử, ví dụ như là 100 số chẳng hạn, sẽ thật không thông minh khi chúng ta viết đi viết lại 100 lần hàm input() như trên.

Khi đó, chúng ta có thể nhập số phần tử của dãy số, và sau đó sử dụng vòng lặp for để tiến hành nhập dãy số trong python.

Ví dụ, chúng ta nhập n số nguyên từ bàn phím python như sau:

n = int(input("Nhập số phần tử của dãy số : "))
mylist = []
for i in range(n):
val = int(input('Nhập một số: '))
mylist.append(val)
print(mylist)

Màn hình nhập dữ liệu như sau:

Nhập số phần tử của dãy số : 5
Nhập một số: 1
Nhập một số: 12
Nhập một số: 34
Nhập một số: 5
Nhập một số: 43
[1, 12, 34, 5, 43]

Chúng ta có thể sử dụng cách viết nội hàm list comprehension để viết mã lệnh nhập n số nguyên từ bàn phím python một cách gọn gàng và thông minh hơn như sau:

n = int(input("Nhập số phần tử của dãy số : "))
s = [int(input(">>")) for i in range(n)]
print(s)

Màn hình nhập dữ liệu sẽ như sau:

Nhập số phần tử của dãy số : 5
>> 1
>> 12
>> 34
>> 5
>> 43
[1, 12, 34, 5, 43]

Ngoài cách lặp lại hàm input() bằng vòng lặp for như trên, chúng ta cũng có thể sử dụng một lần nhập duy nhất bằng cách nhập tất cả các phần tử của dãy số cách nhau bởi một ký tự phân cách, ví dụ như là dấu cách chẳng hạn, sau đó dùng phương pháp tách chuỗi và thu về dãy số dưới dạng list như sau:

mystr = input("Nhập các phần tử của dãy số cách nhau bởi dấu cách: ")
mylist = mystr.split()
mylistnum = [int(i) for i in mylist]
print(mylistnum)

Màn hình nhập dữ liệu sẽ như sau:

Nhập các phần tử của dãy số cách nhau bởi dấu cách: 1 12 34 56 77 89
[1, 12, 34, 56, 77, 89]

Lưu ý là ở đây, để có thể tách các số ra khỏi chuỗi, chúng ta vẫn giữ nguyên kết quả nhập dữ liệu ở dạng chuỗi. Sau khi tách số ra khỏi chuỗi rồi, chúng ta mới sử dụng cách viết nội hàm list comprehension để chuyển các phần tử là chuỗi trong list sang dạng số nguyên, như ở trên.

  • Xem thêm: Tách chuỗi trong python.

Nhập dãy số trong python không giới hạn số phần tử

Bằng cách sử dụng vòng lặp vô hạn while True có kèm điều kiện để dừng, chúng ta có thể nhập dãy số trong python mà không giới hạn số phần tử cần nhập vào.

Ví dụ, chúng ta nhập một dãy số trong python không giới hạn số phần tử và sẽ kết thúc quá trình nhập khi bạn nhập vào dòng chữ stop như sau:

mylistnum = []

print('Nhập "stop" khi muốn dừng')
while True:
val = input('Nhập một số: ')
if val == 'stop':
print('Kết thúc')
break
mylistnum.append(int(val))
print(mylistnum)

Màn hình nhập dữ liệu sẽ như sau:

Nhập "stop" khi muốn dừng
Nhập một số: 1
Nhập một số: 12
Nhập một số: 21
Nhập một số: 223
Nhập một số: 43
Nhập một số: 45
Nhập một số: 323
Nhập một số: 2
Nhập một số: 33
Nhập một số: 4
Nhập một số: stop
Kết thúc
[1, 12, 21, 223, 43, 45, 323, 2, 33, 4]

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về các cách nhập số trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.