Gần đây tôi đã học được rằng dấu "%" được sử dụng để tính phần còn lại của một số nguyên trong Python. Tuy nhiên tôi đã không thể xác định nếu có một nhà điều hành hoặc phương pháp để tính toán phần trăm bằng Python. Giống như với "/" sẽ cung cấp cho bạn các thương, nếu bạn chỉ cần sử dụng một phao cho một trong các số nguyên nó thực sự sẽ cung cấp cho bạn câu trả lời như bộ phận truyền thống. Vì vậy, bất kỳ phương pháp cho tỷ lệ phần trăm?Có một toán tử để tính phần trăm trong Python không?
Trả lời
Không có toán tử nào như vậy trong Python, nhưng nó không quan trọng để thực hiện theo cách của riêng bạn. Trong thực tế trong tính toán, tỷ lệ phần trăm không gần như hữu ích như một modulo, vì vậy không có ngôn ngữ mà tôi có thể nghĩ đến việc thực hiện một.
Cảm ơn bạn đã làm rõ! – nim6us
Tôi muốn thêm rằng ngay cả trong toán học, tỷ lệ hữu ích hơn nhiều so với tỷ lệ phần trăm. Tỷ lệ phần trăm chỉ là một cách để thể hiện tỷ lệ mà nhiều người quen thuộc hơn. – goncalopp
@ nim6us: nếu tất cả những gì bạn cần là in phần trăm thì định dạng chuỗi Python có chỉ thị như vậy: '" {: .1%} ". Định dạng (0.1234)' -> ''12 .3% ''. – jfs
Bạn chỉ có thể chia hai số của bạn và nhân với 100. Lưu ý rằng điều này sẽ ném ra một lỗi nếu "toàn bộ" là 0, như hỏi bao nhiêu phần trăm từ 0 một số là không có ý nghĩa:
def percentage(part, whole):
return 100 * float(part)/float(whole)
Hoặc nếu câu hỏi bạn muốn trả lời là "5% là 20", thay vì "tỷ lệ phần trăm là 5 trong 20" (giải thích khác nhau của câu hỏi lấy cảm hứng từ Carl Smith's answer), bạn sẽ viết:
def percentage(percent, whole):
return (percent * whole)/100.0
Cảm ơn bạn đã cho tôi một phương pháp thay thế. – nim6us
Bạn có thể muốn thêm một nếu toàn bộ là 0 trở về 0, vì nếu không thì điều này sẽ ném một ngoại lệ. Tôi chỉ cần chạy vào điều này vì vậy đó là lý do tại sao tôi cho bạn biết! – andychase
@CarlSmith Tôi không sao chép câu trả lời của bạn; bạn sẽ lưu ý rằng phiên bản của tôi không giống với phiên bản của bạn.Phần thứ hai được lấy cảm hứng từ cách giải thích khác nhau của bạn về câu hỏi, vì vậy bạn nói đúng, tôi đáng lẽ phải ghi nhận bạn vì đã truyền cảm hứng cho tôi để thêm giải thích thay thế cho câu hỏi. –
Câu trả lời của Brian (một chức năng tùy chỉnh) là điều chính xác và đơn giản nhất để làm nói chung.
Nhưng nếu bạn thực sự muốn xác định loại số với toán tử '%' không chuẩn, như máy tính bàn làm sao cho 'X% Y' có nghĩa là X * Y/100.0, sau đó từ Python 2,6 trở đi bạn có thể xác định lại the mod() operator:
import numbers
class MyNumberClasswithPct(numbers.Real):
def __mod__(self,other):
"""Override the builtin % to give X * Y/100.0 """
return (self * other)/ 100.0
# Gotta define the other 21 numeric methods...
def __mul__(self,other):
return self * other # ... which should invoke other.__rmul__(self)
#...
Điều này có thể nguy hiểm nếu bạn đã từng sử dụng toán tử '%' trên một hỗn hợp của MyNumberClasswithPct với số nguyên bình thường hay nổi.
gì cũng tẻ nhạt về mã này được bạn cũng phải xác định tất cả 21 phương pháp khác của một Integral hay Real, để tránh những TypeError gây phiền nhiễu và mờ mịt sau khi bạn khởi tạo nó
("Can't instantiate abstract class MyNumberClasswithPct with abstract methods __abs__, __add__, __div__, __eq__, __float__, __floordiv__, __le__, __lt__, __mul__, __neg__, __pos__, __pow__, __radd__, __rdiv__, __rfloordiv__, __rmod__, __rmul__, __rpow__, __rtruediv__, __truediv__, __trunc__")
Các công cụ nâng cao thực sự ở đây mà mặc dù không phải là ý tưởng hay trong trường hợp này, cho thấy sức mạnh thực sự của các loại Python! – andychase
Lý do tại sao tôi yêu python, NÀY. Ngoài ra, có thể không định nghĩa lại tất cả các phương thức trừu tượng bằng cách thực hiện một số phép thuật với nhân bản lớp * kiểu 'int' hiện có, và thiết lập các toán tử' __mod__' và '__mul__', và gán cho nó là MyNumberClasswithPct? – ThorSummoner
Các vị thần sẽ tức giận nếu tôi làm điều đó – Pitto
Tôi nghĩ vấn đề đã được giải quyết ... trong mọi trường hợp, tôi nghĩ đến giải pháp này
def percent(string="500*22%"):
if "%" == string[-1] and "*" in string:
getnum = string[:-1]
ops = getnum.split("*")
result = int(ops[0]) * int(ops[1])/100
print("The {}% of {} is {}".format(ops[1], ops[0], result))
return result
else:
print("The argument must be a string like '500*22%'")
percent("1200*30%")
[ra]:
30% của 1200 là 360.0
- 1. Tính toán phần trăm
- 2. Tính toán xếp hạng phần trăm
- 3. tính 95 phần trăm giá trị danh sách trong python
- 4. Làm cách nào để tính phần trăm với python/numpy?
- 5. Thuật toán nhanh để tính toán tỷ lệ phần trăm để loại bỏ các ngoại lệ
- 6. Tính phần trăm trong SQLite
- 7. Tính toán Tỷ lệ phần trăm luôn trả về 0
- 8. Tính toán tỷ lệ phần trăm số nhóm (*)
- 9. Có một toán tử logic hợp lý trong python không?
- 10. thêm phần tử có thuộc tính trong python minidom
- 11. Có thể jquery trả về chiều cao của một phần tử dưới dạng phần trăm không?
- 12. Tính tỷ lệ phần trăm tiến độ
- 13. Tính tỷ lệ phần trăm trong ruby?
- 14. Tính tỷ lệ phần trăm
- 15. Toán tử thay thế Perl có thể khớp với một phần tử trong một mảng không?
- 16. Python: tìm phần tử trong một mảng
- 17. Phần trăm bố cục phần trăm Android
- 18. không python có một toán tử dấu phẩy như C
- 19. Ghép cặp chiều rộng/chiều cao CSS và tỷ lệ phần trăm tính toán tỷ lệ phần trăm?
- 20. Ý nghĩa của toán tử dấu + phần trăm trong Ruby, như trong "% |" là gì?
- 21. Có toán tử "không bằng" trong Python không?
- 22. Có thể đặt chiều rộng phần tử Chọn theo phần trăm không?
- 23. Python không bằng toán tử
- 24. Regex và toán tử OR không có nhóm trong Python?
- 25. Whats cách nhiều nhất để tính toán thay đổi phần trăm trên danh sách các số
- 26. Phạm vi Toán Để Tỷ lệ Phần trăm
- 27. làm thế nào để tính toán màu gradient theo phần trăm
- 28. Tính tỷ lệ phần trăm trong ngày đã trôi qua
- 29. Tính tỷ lệ phần trăm cho BigDecimals
- 30. Đặt chiều rộng phần trăm cho phần tử span
Để rõ ràng, bạn có nghĩa là 'x * y/100.0' hoặc' (x/y) * 100.0' không? Hầu hết chúng ta đọc nó như là phép nhân; Brian đọc nó như là bộ phận. – smci