簡體   English   中英

我的def函數代碼結構中有什么錯誤

[英]what are the errors in my def function code structure

該程序將為給定的整數之和編寫def函數。

def find_sum_numbers(sample_list):
    sum_numbers=0
    for x in sample_list:
        sum_numbers=sum_numbers+x
    #return sum_numbers
    print("The sum of the numbers is: ", sum_numbers)

主程序:

n=input("Please enter a number: ")
sample_list=range(1,n+1))
find_sum_numbers(sample_list)

輸出:

Traceback (most recent call last):   File "D:/edX-courses/Python/programs/def sum of numbers.py", line 14, in <module>
    sample_list=range(1,n+1) TypeError: must be str, not int

實際上, input函數返回的是字符串而不是整數,因此您需要先進行轉換

sample_list=range(1, int(n) + 1)

..

n=int(input("Please enter a number: "))
sample_list=range(1,n+1))
find_sum_numbers(sample_list)

如果您使用的是python2.7則默認情況下會將所有輸入值視為string數據類型。 因此,您需要顯式轉換string -> int

使用輸入時,即使輸入了數字,它也會自動接受輸入作為字符串。 您應該做的是檢查輸入是否為有效數字,然后將其轉換為整數。

n=input("Please enter a number: ")
if n.isdigit():
    sample_list=range(1,int(n)+1)
else:
    print("You must enter a number")
find_sum_numbers(sample_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM