cuốn sách gpt4 ai đã làm

Python: Tập lệnh chỉ chạy khi thiết bị đầu cuối được nhập. quả táo

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 10:34:09 26 4
mua khóa gpt4 Nike

Vì lý do nào đó, tập lệnh của tôi từ chối chạy trực tiếp từ Text Wrangler nhưng vẫn chạy tốt khi được nhập vào thiết bị đầu cuối.

import math

chắc chắn chính():
print("Chương trình này tìm nghiệm thực của phương trình bậc hai\n")
a,b,c, = eval(input("Hãy nhập các hệ số (a,b,c):"))
discRoot = math.sqrt(b * b -4 * a * c)
root1 = (-b + discRoot) / (2 * a)
root2 = (-b - discRoot) / (2 * a)
print("\nCác giải pháp là:" , root1, root2)


chủ yếu()

Khi tôi chạy nó trong textwrangler, tôi gặp lỗi "TypeError: eval() arg 1 must be a string or code object". Việc sử dụng eval() không có nghĩa là dữ liệu đầu vào sau đây là số nguyên chứ không phải chuỗi phải không? Tại sao điều này lại xảy ra?

câu trả lời hay nhất

Trong Python 2,đầu vào() Tương đương với Python 3 eval(đầu vào()). Tôi nghĩ bạn đang chạy nó trong Terminal bằng Python 3 nhưng TextWrangler sử dụng Python 2 nên TextWrangle đang thực thi eval(eval(input())) - Kết quả tính toán là đánh giá(5), nguyên nhân gây ra lỗi mà bạn nhìn thấy.

Để khắc phục sự cố này, bạn cần cập nhật TextWrangler hoặc sử dụng Python 2 trong thiết bị đầu cuối. Nếu bạn muốn tùy chọn thứ hai, bạn nên thay đổi eval(đầu vào()) Thay thế bằng đầu vào().

Lưu ý phụ - sử dụng nó như thế này đánh giá Đó là một ý tưởng tồi (nguy hiểm). Bạn có lẽ nên làm một cái gì đó như a, b, c = map(int, input().split(",")) điều (trong Python 3).

Giới thiệu về Python: Tập lệnh chỉ chạy khi thiết bị đầu cuối được nhập. Apple, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/24498186/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress