[英]Python Issue with Loops
我設計了一個代碼,它將一個“數字”作為用戶的輸入。
該號碼將用於制作...
numerator = (3*number) - 2
denominator = (4*n) + 1
。 該代碼還將允許用戶選擇他們希望該序列繼續執行多少次,之后將總計並顯示所有分數的總和。
這是我的代碼:
l=int(input("How many times do you repeat this sequence?: "))
n=int(input("Enter a base number: "))
n1=n
n2=n
total=0
s = ''
def calculate(l,n,n1,n2,total,s):
for j in range(l):
s += "{}/{} + ".format(3*n1-2, 4*n2+1)
n1=n+n1
n2=n+n2
total=(((n*3)-2)/((4*n)+1))+total
print(s)
print(total)
calculate(l, n, n1, n2, total, s)
現在這是例如當我獲得此代碼的輸出時收到的兩個錯誤:
How many times do you repeat this sequence?: 2
Enter a base number: 1
1/5 + 4/9 +
0.4
兩個問題:
4/9
是最后一個分數,因此有一種方法可以消除最后的“ +”加號,因為它僅指向空格。 0.4
,這是不正確的,總和應為1/5 + 4/9 = 0.2 + 0.44 = 0.64
,我不確定在上面輸入我的總和公式時會誤入歧途。 任何建議/意見將不勝感激!
刪除+
一種便宜方法是簡單地切斷字符串中的最后一個字符: str[:-1]
。
到目前為止,問題2似乎要使用n1和n2而不是n。
截至目前,您獲得的是1/5(.2)+ 1/5(.2)= 0.4
與其連接這樣的字符串,不如收集一個列表中的所有部分,然后將加號上的各項連接起來:
s = [] s.append('{}/{}'.format(1, 5)) s.append('{}/{}'.format(4, 9)) print(' + '.join(s)) # 1/5 + 4/9
我不太確定自己在做什么,但是如果要獲取打印分數的總和,則應確保以相同的方式計算這些分數。 因此,與其在計算總和之前先遞增n1
和n2
, n2
以與分數輸出相同的方式計算總和,然后再更改這些變量:
s.append("{}/{}".format(3 * n1 - 2, 4 * n2 + 1)) total += (3 * n1 - 2) / (4 * n2 + 1) n1 += n n2 += n
我不了解python,但是您可以執行以下操作來糾正邏輯錯誤。
如果j = l(表示最后一個分數),則不包含+,否則包含+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.