[英]How do I round to a whole number in Python?
我有一個任務,我遇到了一些麻煩。
這是我的問題:
編寫一個程序,使用兩個單獨的輸入(“輸入男性人數:”、“輸入女性人數:”)詢問用戶在 class 中注冊的男性人數和女性人數。
程序應按以下格式顯示男性和女性的百分比(四舍五入到最接近的整數):
Percent males: 35%
Percent females: 65%
使用字符串格式。
我的問題是我無法計算男性和女性的百分比。 例如,我用來對代碼輸入進行評分的程序有 150 名男性和 250 名女性。 我的計划獲得了 37% 的男性比例,而不是 38%。
這是我現在擁有的代碼
number_of_males = int(input("Enter number of males:"))
number_of_females = int(input("Enter number of females:"))
total = (number_of_males + number_of_females)
percentage_male = ((number_of_males/total)*100)
percentage_female = ((number_of_females/total)*100)
print("Percent males: " + str( int(percentage_male )) + '%')
print("Percent females: " + str( int(percentage_female )) + '%')
到目前為止,我已經嘗試過了,但它給了我一個錯誤。 我可能打錯了圓形 function。
line 9, in <module>
print("Percent males: " + str( (round(int(percentage_male ))) + '%'))
TypeError: unsupported operand type(s) for +: 'int' and 'str'
number_of_males = int(input("Enter number of males:"))
number_of_females = int(input("Enter number of females:"))
total = (number_of_males + number_of_females)
percentage_male = ((number_of_males/total)*100)
percentage_female = ((number_of_females/total)*100)
print("Percent males: " + str( (round(int(percentage_male ))) + '%'))
print("Percent females: " + str( int(percentage_female )) + '%')
是的,正如您已經猜到的那樣,您正在嘗試對已經是 integer 的數字進行四舍五入。
例如: int(10.6)
返回數字“10.6”的截斷 integer 部分。 在這種情況下返回10
。
因此,如果我們使用round(int(10.6))
會發生什么,我們只是試圖四舍五入10
。 這類似於round(10)
。
相反,您想做的是round(10.6)
返回 11。
此外,line9 中使用了一些額外的括號,導致類型錯誤。
在你的場景中,
number_of_males = int(input("Enter number of males:"))
number_of_females = int(input("Enter number of females:"))
total = (number_of_males + number_of_females)
percentage_male = ((number_of_males/total)*100)
percentage_female = ((number_of_females/total)*100)
print("Percent males: " + str(round(percentage_male)) + '%')
print("Percent females: " + str(round(percentage_female)) + '%')
將完成這項工作。
此外,您可以通過刪除不必要的括號來重新排列代碼。
number_of_males = int(input("Enter number of males:"))
number_of_females = int(input("Enter number of females:"))
total = number_of_males + number_of_females
percentage_male = number_of_males/total*100
percentage_female = number_of_females/total*100
print("Percent males: " + str(round(percentage_male)) + '%')
print("Percent females: " + str(round(percentage_female)) + '%')
您不能添加數字和字符串'%'
。 你可以用
print("Percent males: " + str( (round(int(percentage_male )))) + '%')
但是您也不需要int
function。 舍入 integer 是沒有意義的。 int
刪除小數部分(向零舍入)。 你應該跳過它:
print("Percent males: " + str(round(percentage_male)) + '%')
並得到相同的結果。
number_of_males = int(input("Enter number of males:"))
number_of_females = int(input("Enter number of females:"))
total = number_of_males + number_of_females
percentage_male = number_of_males / total * 100
percentage_female = number_of_females / total * 100
print("Percent males: {}%".format(round(percentage_male)))
print("Percent females: {}%".format(round(percentage_female)))
Python 具有內置格式,包括格式作為演示文稿,例如:
>>> p = 0.45
>>> format(p, '.0%')
'45%'
>>> f"{p:.0%}"
'45%'
所以在你的情況下,它將是:
percentage_male = number_of_males / total
percentage_female = number_of_females / total
print(f"Percent males: {percentage_male:.0%}")
print(f"Percent females: {percentage_female:.0%}")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.