Tính và xuất kết quả máy tính đơn giản với hai số

Bài tập Python tự luyện

5.0 (1 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 20:53 11-07-2021 3.018 lượt xem 11 bình luận
Tác giả/Dịch giả: TrongPhuCBL49 K9
Học nhanh

Danh sách bài học

Tính và xuất kết quả máy tính đơn giản với hai số

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

Viết chương trình nhập vào từ bàn phím một dãy số nguyên với độ dài bất kỳ, dãy số nằm trên 1 dòng, các số cách nhau bởi khoảng trắng. Tính tổng của dãy số và hiển thị ra màn hình (Có xử lý ngoại lệ đầu vào).


Kiến thức cần có

  • Hàm input() và hàm print()
  • Cấu trúc rẽ nhánh trong Python
  • Biến và kiểu dữ liệu

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

Gồm một dòng duy nhất chưa ba giá trị {số thứ nhất} {phép tính}
{số thứ hai} trên 1 dòng, cách nhau bởi khoảng trắng.

Với:

  • {số thứ nhất} và {số thứ hai} là hai số thực
  • {phép tính} là một trong các dấu ['+', '-', 'x', ':']

Định dạng đầu ra

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

Nếu là phép tính chia và {số thứ hai} bằng 0: So chia phai khac 0!

Nếu biểu thức hợp lệ: {so thu nhat} {phep tinh} {so thu hai} = {ket qua}

Với:

  • {so thu nhat}, {phep tinh}, {so thu hai} là ba giá trị nhập vào từ bàn phím
  • {ket qua} là kết quả của biểu thức

Ví dụ:

  • Input 1:
4 + 5
  • Output 1:
4.0 + 5.0 = 9.0

  • Input 2:
5.6784 - 3.5856
  • Output 2:
5.6784 - 3.5856 = 2.0928

  • Input 3:
0.345 x -3.57
  • Output 3:
0.345 x -3.57 = -1.23165

  • Input 4:
5.396 : 0
  • Output 4:
So bi chia phai khac 0!

  • Input 5:
-4.387 : 2.56
  • Output 5:
-4.387 : 2.56 = -1.7136718749999997

Gợi ý

  • Dùng hàm input() và hàm split() để nhận ba giá trị {số thứ nhất}, {phép tính} và {số thứ hai} từ bàn phím.
  • Ép kiểu dữ liệu của {số thứ nhất} và {số thứ hai} sang số thực để xử lý vì các giá trị nhận được từ hàm input() mặc định sẽ ở kiểu chuỗi.
  • Dùng cấu trúc rẽ nhánh if … else để so sánh {phép tính} với các dấu '+', '-', 'x', ':' và lưu lại kết quả phù hợp
  • Lưu ý: Ở trường hợp {phép tính} là phép chia, thì kiểm tra điều kiện {số thứ hai}. Nếu bằng 0 thì xuất thông báo lỗi.
  • Dùng hàm print() để xuất kết quả theo yêu cầu.

Code mẫu

#Nhap bieu thuc tu ban phim
soThu1, phepTinh, soThu2 = input().split()

#Ep kieu du lieu sang so thuc
soThu1 = float(soThu1)
soThu2 = float(soThu2)

#Bien luu ket qua cua bieu thuc
ketQua = None

#Dung cau lenh re nhanh de phan loai phep tinh
#Luu ket qua cua loai phep tinh phu hop
if phepTinh == '+':
   ketQua = soThu1 + soThu2
elif phepTinh == '-':
   ketQua = soThu1 - soThu2
elif phepTinh == 'x':
   ketQua = soThu1 * soThu2
elif phepTinh == ':':
   #Xu ly truong hop o phep chia va so bi chia bang 0
   if soThu2 == 0:
       print("So chia phai khac 0!")
   else:
       ketQua = soThu1 / soThu2

#Neu bien ketQua khac None thi chung to bieu thuc hop le
if ketQua != None:
   #In ra man hinh bieu thuc va ket qua
   print("{} {} {} = {}".format(soThu1, phepTinh, soThu2, ketQua))

Kết luận

Trong bài này, Kteam đã hướng dẫn bạn cách viết chương trình máy tính đơn giản với các phép cộng, trừ, nhân, chia hai số được nhập từ bàn phím. Tính và xuất kết quả ra màn hình.

Ở bài tiếp theo, chúng ta sẽ cũng nhau học cách viết chương trình GIẢI PHƯƠNG TRÌNH BẬC HAI VỚI CÁC HỆ SỐ ĐƯỢC NHẬP TỪ BÀN PHÍM VÀ HIỂN THỊ KẾT QUẢ RA MÀN HÌNH.

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.

Nội dung bài viết

Tác giả/Dịch giả

Khóa học

Bài tập Python tự luyện

Serial dành cho những bạn cần luyện tập phương pháp, tu duy lập trình. Làm quen với các bài toán trong lập trình, ngẫu nhiên từ cơ bản đến nâng cao. Nội dung Serial này được phân tách chi tiết nhất có thể, nhằm giúp các bạn dễ hiểuthực hành được ngay.

Bạn nên tự làm lại từng bài tập trên video để có kết quả tốt nhất. Cùng Kteam "Luyện tập - Thử thách - không ngại khó"

Đánh giá

TankAnk đã đánh giá 10:09 09-08-2021

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Bố Già đã bình luận 13:05 29-08-2021

Code viết loàng ngoàng quá: :)))

print('Nhập vào biểu thức hợp lệ: {so thu nhat} {phep tinh} {so thu hai} = {ket qua}')
while True:
    try:
        a,b,c=input('-->: ',).split()
        try:
            a=float(a)
            c=float(c)
            if str(b) in ('+','-','*','/'):
                if str(b)=='/' and c!=0:
                    break
                elif str(b)=='/' and c==0:
                    print('Với phép chia thì số chia phải khác 0. Nhập lại')
                else:
                    break
            else:
                print('Kí tự thứ 2 phải nhập vào phép tính: (+, -, *, /). Nhập lại')
        except:
            print('Số thứ nhất và số thứ 2 phải là kiểu số thực !!!')
    except:
        print('Định dạng đầu vào thiếu hoặc không đúng!!!. Nhập lại')
if str(b) == '+':
    print('Kết quả của {} {} {} là: '.format(a,b,c),a+c)
elif str(b) == '-':
    print('Kết quả của {} {} {} là: '.format(a,b,c),a-c)
elif str(b) == '*':
    print('Kết quả của {} {} {} là: '.format(a,b,c),a*c)
elif str(b) == '/':
    print('Kết quả của {} {} {} là: '.format(a,b,c),a/c)
print('----Kết Thúc Chương Trình----')

 

anbinh đã bình luận 13:07 27-08-2021

soThu1, phepTinh, soThu2 = input().split()

ketQua = None

s = False

a = False

try:

    soThu1 = float(soThu1)

    soThu2 = float(soThu2)

    ketQua = None

    s = True

    a = True

except:

    print('Dinh dang dau vao khong hop le!')

if s:

    if phepTinh == '+':

        ketQua = soThu1 + soThu2

    elif phepTinh == '-':

        ketQua = soThu1 - soThu2

    elif phepTinh == 'x':

        ketQua = soThu1 * soThu2

    elif phepTinh == ':':

        if soThu2 == 0:

            print("So chia phai khac 0!")

    else:

        ketQua = soThu1 / soThu2

 

if a:

    if ketQua != None:

        print("{} {} {} = {}".format(soThu1, phepTinh, soThu2, ketQua))

khoadhbk đã bình luận 16:45 13-08-2021
soThu1, phepTinh, soThu2 = input().split()

soThu1 = float(soThu1)
soThu2 = float(soThu2)

ketQua = None

if phepTinh == '+':
   ketQua = soThu1 + soThu2
elif phepTinh == '-':
   ketQua = soThu1 - soThu2
elif phepTinh == 'x':
   ketQua = soThu1 * soThu2
elif phepTinh == ':':
   
   if soThu2 == 0:
       print("So chia phai khac 0!")
   else:
       ketQua = soThu1 / soThu2

if ketQua != None:
   
   print(f"{soThu1} {phepTinh} {soThu2} = {ketQua}") 
 
   #Sửa một chút code dòng print để code ngắn và dễ hiểu hơn

 

f1rst - the potato đã bình luận 09:05 07-08-2021
so1, pheptinh, so2 = input('Nhập phép tính: ').split()
so1 = float(so1)
so2 = float(so2)
if pheptinh == '+':
    a = so1 + so2
    print('{} + {} ='.format(so1, so2), a)
elif pheptinh == '-':
    a = so1 - so2
    print('{} -{} ='.format(so1, so2), a)
elif pheptinh == 'x':
    a = so1 * so2
    print('{} x {} ='.format(so1, so2), a)
elif pheptinh == ':':
    if so2 == 0:
        print('Không thể chia cho 0')
    else:
        a = so1 / so2
        print('{} : {} ='.format(so1, so2), a)

 

Navy1998 đã bình luận 10:11 06-08-2021

rom os import X_OK

 

so1,calculator,so2 = input("nhap so thu nhat phep tinh va so thu hai: ").split()

 

so11 = float(so1)

 

so22 = float(so2)

 

if calculator == "+":

 

    tong = so11 + so22

 

    print("{} {} {} ".format(so11,calculator,so22),"=",tong)

 

elif calculator == "-":

 

    hieu = so11 - so22

 

    print("{} {} {}".format(so11,calculator,so22),"=",hieu)

 

elif calculator == "*":

 

    tich = so11 * so22

 

    print("{} {} {}".format(so11,calculator,so22),"=",tich)

 

elif calculator == "/":

 

    if so22 == 0:

 

        print("so chia phai lon 0")

        

    else:

 

        thuong = so11 / so22

 

        print("{} {} {}".format(so11,calculator,so22),"=",thuong)    

 

else:

 

    print("khong biet tinh")  

Không có video.