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

0.0 (0 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 20:53 11-07-2021 1.836 lượt xem 6 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á

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
htuyhbr2013 đã bình luận 23:19 21-07-2021

Mọi người giải thik giúp em sao ko lỗi mà code nó ko chạy dc vậy ạ

 

 

so_1 , pheptinh , so_2 = input().split()

 

so_1 = float(so_1)

so_2 = float(so_2)

ketqua = None

 

if pheptinh == "+":

    ketqua == so_1 + so_2

   

elif pheptinh == "-":

    ketqua == so_1 - so_2

elif pheptinh == "*":

    ketqua == so_1 * so_2

elif pheptinh == ":":

    if  so_2 == 0 :

        print('so thu hai phai khac 0')

    else:

        ketqua = so_1 / so_2

if ketqua != None:

    print("{} {} {} = {}".format(so_1 ,pheptinh , so_2 , ketqua))

jacknguyenhdtk đã bình luận 16:53 10-07-2021

try:

    a,pt,b=input("Nhap phep tinh '+-x:' cua 2 so").split()

    a=float(a)

    b=float(b)

    

    if b==0:

        print('so chia phai khac 0!')

    elif pt == '+':

        print('tong cua {} va {} la:{}'.format(a,b,a+b))

    elif pt == '-':

        print('hieu cua {} va {} la:{}'.format(a,b,a-b))

    elif pt == 'x':

        print('tich cua {} va {} la:{}'.format(a,b,a*b))

    else:

        print('thuong cua {} va {} la:{}'.format(a,b,a/b))

except:

    print('file không hợp lệ!')

HEX Pythoner đã bình luận 23:08 02-06-2021
try:
    n1, cal, n2 = input("Enter the calculation: {Num 1} {+, -, *, /} {Num 2}: ").split()
    lst = [n1, cal, n2]
    # hàm eval() thực hiện phép tính ở dạng chuỗi
    print(f"{n1} {cal} {n2} = {eval(''.join(lst))}")
except ZeroDivisionError:
    print("Not divisible by 0 !")

 

HEX Pythoner đã bình luận 23:08 02-06-2021

Cách này gọn hơn 1 chút

xxxts2txxx đã bình luận 20:21 25-02-2021

 

while True:
    try:
        b18 = input('Dãy dữ liệu gồm 3 giá trị: {Số thứ nhất} {Phép tính} {Số thứ 2}: ')
        [n1, m, n2] = b18.split(' ')
        n1 = float(n1)
        n2 = float(n2)
        if m == '+':
            result =  n1 + n2
        elif m == '/':
            result =  n1 / n2
        elif m == '*':
            result =  n1 * n2
        elif m == '-':
            result =  n1 - n2
        print('Kết quả của phép tính',n1,m,n2,'là:',result)
        break
    except ValueError:
        print('Nhập sai định dạng nhập lại')
    except ZeroDivisionError:
        print('Số thứ 2 phải khác 0, nhập lại')
    except NameError:
        # Vì nếu nhập sai phép tính, thì sẽ result sẽ không được tính toán nên bị lỗi không tìm thấy
        print('Nhập sai phép tính, nhập lại')

 

Không có video.