Hướng dẫn how to add numbers in string in python - cách thêm số vào chuỗi trong python

Tôi có một chuỗi làm đầu vào cho mã tôi đang viết và để một ví dụ về chuỗi là:

"12 inches  makes   1   foot"

Mục tiêu của tôi là để mã của tôi chạy qua chuỗi này và chỉ cần rút các số nguyên và thêm chúng. Vì vậy, đầu ra cho chuỗi trên sẽ là 13. Tôi đang sử dụng thử và ngoại trừ ở đây vì một chuỗi đầu vào mẫu khác có thể giống như "Pi là 3,14".

msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]

Tôi đã làm những gì ở trên và tôi không nhận được nó để thêm giá trị của A [nếu đó là INT] vào "thesum". Làm thế nào tôi có thể làm cho nó hoạt động? Ngoài ra, tôi muốn có nó trong thử, ngoại trừ định dạng để tôi có thể gọi valueError

Hỏi ngày 28 tháng 4 năm 2016 lúc 1:03Apr 28, 2016 at 1:03

Không cần phải kiểm tra bình đẳng với một chuỗi. Trong thực tế, chỉ cần thử '4' == 4 trong một thông dịch viên. Câu trả lời là False vì chuỗi và số nguyên không bao giờ tương đương. Chỉ cần đặt thesum += int[a] vào vòng lặp thay vì câu lệnh

msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
0 của bạn. Nếu bạn không muốn ________ 11 -________ 12, hãy sử dụng
msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
3 thay vì
msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
4 và lấy ra
msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
5 hoàn toàn:

for a in s:
    if a.isdigit[]:
        thesum += int[a]
        print[thesum]

Một cách tốt sẽ là sự kết hợp của một số bản dựng:

string = "12 inches makes 1 foot"
total = sum[map[int, filter[str.isdigit, string.split[]]]]

msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
6 chỉ tìm thấy các ký tự là chữ số. Sau đó, chúng tôi chuyển đổi từng thành một số nguyên với
msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
7 và tìm tổng số với
msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
8.

Đã trả lời ngày 28 tháng 4 năm 2016 lúc 1:10Apr 28, 2016 at 1:10

Zondozondozondo

19.3k7 Huy hiệu vàng43 Huy hiệu bạc83 Huy hiệu Đồng7 gold badges43 silver badges83 bronze badges

4

msg= "12    inches  makes   1   foot"

thesum = 0

s= msg.split[]

for a in s:

    try:

        if a == int[a]:
            a= int[a]
            thesum += a
        print [thesum]
    except ValueError as e:


        print["Value Error: no int present"]
9 là
for a in s:
    if a.isdigit[]:
        thesum += int[a]
        print[thesum]
0 và
for a in s:
    if a.isdigit[]:
        thesum += int[a]
        print[thesum]
1 là ________ 22 [nếu có thể], vì vậy
for a in s:
    if a.isdigit[]:
        thesum += int[a]
        print[thesum]
3 sẽ không bao giờ bằng nhau.

Chỉ cần thêm giá trị của

for a in s:
    if a.isdigit[]:
        thesum += int[a]
        print[thesum]
1, nếu chuyển đổi không thành công, nó sẽ tăng
for a in s:
    if a.isdigit[]:
        thesum += int[a]
        print[thesum]
5.

Các mã sau đây sẽ hoạt động.

msg= "12    inches  makes   1   foot"
thesum = 0
s= msg.split[]
for a in s:
    try:
        thesum += int[a]
    except ValueError as e:
        print a
print thesum

Đã trả lời ngày 28 tháng 4 năm 2016 lúc 2:19Apr 28, 2016 at 2:19

HootinghootingHooting

1.61111 Huy hiệu bạc20 Huy hiệu Đồng11 silver badges20 bronze badges

Tôi thích "Re" và hiểu để giúp đọc dễ dàng hơn:

import re
print[sum[int[a] for a in re.findall[r'\d+', '12 inches make 1 foot']]]

Sau đó, bạn có thể mở rộng biểu thức thông thường cho phao, v.v.

Đã trả lời ngày 28 tháng 4 năm 2016 lúc 1:22Apr 28, 2016 at 1:22

Swstepheswstepheswstephe

1.76210 Huy hiệu bạc17 Huy hiệu đồng10 silver badges17 bronze badges

1

Hầu hết các phương pháp trước đó đều giảm giá đầu vào thứ hai là "PI là 3,14". Mặc dù câu hỏi đã được đặt ra với sự khẳng định đã nêu về số nguyên phân tích cú pháp. Nó đòi hỏi phải xử lý các con số như float để xử lý thành công đầu vào thứ hai.

import unittest
import re


def isDigit[s]:
 return re.match[r'[\d.]+', s]

def stringParse[input]:
 input = [i.strip[] for i in input.split[]]
 input = filter[lambda x: isDigit[x], input]
 input = map[lambda x: float[x], input]
 return sum[input]

class TestIntegerMethods[unittest.TestCase]:

 def test_inches[self]:
  self.assertEqual[stringParse["12 inches  makes   1   foot"], 13.0]

 def test_pi[self]:
  self.assertTrue[stringParse['pi is 3.14'], 3.14]

if __name__ == '__main__':
 unittest.main[]

Một vấn đề khác về vấn đề

Đã trả lời ngày 28 tháng 4 năm 2016 lúc 2:41Apr 28, 2016 at 2:41

1

Làm thế nào để bạn thêm số trong chuỗi?

Chuyển từng chuỗi đến đối tượng số để chuyển đổi nó thành một số.Sử dụng toán tử bổ sung [+], ví dụ:Số ['1'] + số ['2'].Toán tử bổ sung sẽ trả về tổng của các số. Use the addition [+] operator, e.g. Number['1'] + Number['2'] . The addition operator will return the sum of the numbers.

Chúng ta có thể thêm số vào chuỗi không?

Trong JavaScript, toán tử + được sử dụng cho cả cộng và nối chuỗi.Khi bạn "thêm" một số vào một chuỗi, trình thông dịch sẽ chuyển đổi số của bạn thành một chuỗi và kết hợp cả hai với nhau.the + operator is used for both numeric addition and string concatenation. When you "add" a number to a string the interpreter converts your number to a string and concatenates both together.

Làm thế nào để bạn thêm 1 vào một chuỗi trong Python?

Để tăng một ký tự trong một python, chúng ta phải chuyển đổi nó thành một số nguyên và thêm 1 vào nó và sau đó đúc số nguyên kết quả cho char.Chúng ta có thể đạt được điều này bằng cách sử dụng các phương thức tích hợp ord và chr.convert it into an integer and add 1 to it and then cast the resultant integer to char. We can achieve this using the builtin methods ord and chr.

Bài Viết Liên Quan

Chủ Đề