Hướng dẫn how do you add values to a loop in python? - làm thế nào để bạn thêm các giá trị vào một vòng lặp trong python?

Tôi chưa quen với Python và gặp khó khăn khi quấn đầu tại sao điều này không hoạt động.

number_string = input("Enter some numbers: ")

# Create List
number_list = [0]

# Create variable to use as accumulator
total = 0

# Use for loop to take single int from string and put in list
for num in number_string:
    number_list.append(num)

# Sum the list
for value in number_list:
    total += value

print(total)

Về cơ bản, tôi muốn người dùng nhập 123 chẳng hạn và sau đó nhận được tổng 1 và 2 và 3.

Tôi đang gặp lỗi này và không biết cách chống lại nó.

Traceback (most recent call last):
  File "/Users/nathanlakes/Desktop/Q12.py", line 15, in 
    total += value
TypeError: unsupported operand type(s) for +=: 'int' and 'str'

Tôi không thể tìm thấy câu trả lời cho điều này trong sách giáo khoa của mình và không hiểu tại sao lần lặp thứ hai của tôi sẽ không lặp lại danh sách và tích lũy giá trị lên tổng số.

Hướng dẫn how do you add values to a loop in python? - làm thế nào để bạn thêm các giá trị vào một vòng lặp trong python?

Sukrit Kalra

31.8K7 Huy hiệu vàng65 Huy hiệu bạc70 Huy hiệu Đồng7 gold badges65 silver badges70 bronze badges

Hỏi ngày 30 tháng 4 năm 2013 lúc 10:14Apr 30, 2013 at 10:14

Hướng dẫn how do you add values to a loop in python? - làm thế nào để bạn thêm các giá trị vào một vòng lặp trong python?

0

Bạn cần chuyển đổi các chuỗi thành số nguyên trước khi bạn có thể thêm chúng.

Hãy thử thay đổi dòng này:

number_list.append(num)

Với điều này:

number_list.append(int(num))

Ngoài ra, cách thực hiện điều này sẽ là sử dụng hàm

Traceback (most recent call last):
  File "/Users/nathanlakes/Desktop/Q12.py", line 15, in 
    total += value
TypeError: unsupported operand type(s) for +=: 'int' and 'str'
2 và
Traceback (most recent call last):
  File "/Users/nathanlakes/Desktop/Q12.py", line 15, in 
    total += value
TypeError: unsupported operand type(s) for +=: 'int' and 'str'
3 để chuyển đổi từng chuỗi trong danh sách ban đầu của bạn thành số nguyên:

number_string = input("Enter some numbers: ")

print(sum(map(int, number_string)))

Tuy nhiên, hãy lưu ý rằng nếu bạn nhập một cái gì đó như "123abc" chương trình của bạn sẽ bị sập. Nếu bạn quan tâm, hãy nhìn vào các ngoại lệ xử lý, cụ thể là

Traceback (most recent call last):
  File "/Users/nathanlakes/Desktop/Q12.py", line 15, in 
    total += value
TypeError: unsupported operand type(s) for +=: 'int' and 'str'
4.

Đã trả lời ngày 30 tháng 4 năm 2013 lúc 10:17Apr 30, 2013 at 10:17

Gareth Webbergareth WebberGareth Webber

4.3681 Huy hiệu vàng23 Huy hiệu bạc27 Huy hiệu đồng1 gold badge23 silver badges27 bronze badges

4

Đây là tài liệu chính thức về đầu vào trong Python 3input in Python 3

 input([prompt])

If the prompt argument is present, it is written to standard output without a trailing    newline. The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that. When EOF is read, EOFError is raised. Example:

>>> s = input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"

Vì vậy, khi bạn thực hiện một đầu vào trong dòng đầu tiên của ví dụ, về cơ bản, bạn đang nhận được chuỗi.input in the first line of your example you are basically getting strings.

Bây giờ bạn cần chuyển đổi chuỗi này thành int trước khi tổng kết. Vì vậy, về cơ bản bạn sẽ làm:string to int before summing up. So you would basically do:

total = total + int(value)

Về gỡ lỗi:

Khi ở trong tình huống tương tự, khi bạn nhận được các lỗi như: Loại toán hạng không được hỗ trợ cho +=: 'int' và 'str', bạn có thể sử dụng hàm loại ().type() function.

Làm loại (num) sẽ cho bạn biết rằng đó là một chuỗi. Rõ ràng chuỗi và int không thể được thêm vào.string and int cannot be added.

`

Đã trả lời ngày 30 tháng 4 năm 2013 lúc 10:25Apr 30, 2013 at 10:25

Hướng dẫn how do you add values to a loop in python? - làm thế nào để bạn thêm các giá trị vào một vòng lặp trong python?

Nipun Batranipun BatraNipun Batra

10,6K11 Huy hiệu vàng51 Huy hiệu bạc74 Huy hiệu đồng11 gold badges51 silver badges74 bronze badges

Tôi đoán mọi người đã chỉ ra chính xác lỗ hổng trong mã của bạn, tức là chuyển đổi loại từ chuỗi sang int. Tuy nhiên sau đây là cách viết logic tương tự:

number_string = input("Enter some numbers: ")
print  sum(int(n) for n in number_string)

Ở đây, chúng tôi đang sử dụng trình tạo, danh sách hiểu và tổng chức năng thư viện.

>>> number_string = "123"
>>> sum(int(n) for n in number_string)
6
>>> 

EDIT:

number_string = input("Enter some numbers: ")
print  sum(map(int, number_string))

Benmorel

32.9K48 Huy hiệu vàng173 Huy hiệu bạc 306 Huy hiệu đồng48 gold badges173 silver badges306 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2013 lúc 10:29Apr 30, 2013 at 10:29

1

Thay đổi dòng thành:

Traceback (most recent call last):
  File "/Users/nathanlakes/Desktop/Q12.py", line 15, in 
    total += value
TypeError: unsupported operand type(s) for +=: 'int' and 'str'
0

hoặc

total = total + int(value)

P.S. Cả hai dòng mã là tương đương.

Đã trả lời ngày 30 tháng 4 năm 2013 lúc 10:23Apr 30, 2013 at 10:23

Hướng dẫn how do you add values to a loop in python? - làm thế nào để bạn thêm các giá trị vào một vòng lặp trong python?

Sameer H. Ibrasameer H. IbraSameer H. Ibra

1.8162 huy hiệu vàng17 Huy hiệu bạc25 Huy hiệu đồng2 gold badges17 silver badges25 bronze badges

Làm thế nào để bạn thêm số trong vòng lặp trong một thời gian trong Python?

Trên mỗi lần lặp, chúng tôi sử dụng toán tử += để gán lại biến sum_of_numbers thành giá trị hiện tại của nó cộng với num ...
Lặp lại miễn là số lớn hơn 0 ..
Trên mỗi lần lặp, giảm số 1 ..
Trên mỗi lần lặp, tăng tổng số theo số ..

Làm thế nào để bạn thêm một số vào vòng lặp trong một thời gian?

Tổng số tự nhiên sử dụng trong khi vòng lặp trong cả hai chương trình, vòng lặp được lặp lại n số lần.Và, trong mỗi lần lặp, giá trị của I được thêm vào tổng và tôi được tăng thêm 1.Mặc dù cả hai chương trình đều chính xác về mặt kỹ thuật, tốt hơn là sử dụng cho Loop trong trường hợp này.Đó là bởi vì số lần lặp được biết đến.the loop is iterated n number of times. And, in each iteration, the value of i is added to sum and i is incremented by 1 . Though both programs are technically correct, it is better to use for loop in this case. It's because the number of iterations is known.

Làm thế nào để bạn thêm số liên tục trong Python?

Bây giờ bạn có thể sử dụng SUM hàm tích hợp () của Python để thêm nhiều giá trị số lại với nhau.use Python's built-in function sum() to add multiple numeric values together.

Làm thế nào để bạn thêm chuỗi vào một vòng lặp trong Python?

Concatenation chuỗi có thể được thực hiện bằng nhiều cách ...
Sử dụng + toán tử ..
Sử dụng phương thức tham gia () ..
Sử dụng nhà điều hành % ..
Sử dụng hàm định dạng () ..
Sử dụng, (dấu phẩy).