Hướng dẫn why cant i convert string to float python? - tại sao tôi không thể chuyển đổi chuỗi thành float python?

Tôi đã gặp lỗi giá trị và ngay cả khi tôi thử chơi xung quanh với mã, nó không hoạt động!

Làm thế nào tôi có thể làm cho nó đúng? - Tôi đang sử dụng Python 3.3.2!

Đây là mã:

Hướng dẫn why cant i convert string to float python? - tại sao tôi không thể chuyển đổi chuỗi thành float python?

Như bạn có thể thấy, chương trình yêu cầu bạn có thể đi bộ bao nhiêu dặm và cung cấp cho bạn phản hồi tùy thuộc vào những gì bạn nhập.

Đây là mã ở định dạng văn bản:

print("Welcome to Healthometer, powered by Python...")
miles = input("How many miles can you walk?: ")
if float(miles) <= 0:
    print("Who do you think you are?!! Go and walk 1000 miles now!")
elif float(miles) >= 10:
    print("You are very healthy! Keep it up!")
elif float(miles) > 0 and miles < 10:
    print("Good. Try doing 10 miles")
else:
    print("Please type in a number!")
    miles = float(input("How many miles can you walk?: "))
    if miles <= 0:
        print("Who do you think you are?!! Go and walk 1000 miles now!")
    elif miles >= 10:
        print("You are very healthy! Keep it up!")
    elif miles > 0 and miles < 10:
        print("Good. Try doing 10 miles")

Đã hỏi ngày 1 tháng 11 năm 2013 lúc 22:43Nov 1, 2013 at 22:43

Hướng dẫn why cant i convert string to float python? - tại sao tôi không thể chuyển đổi chuỗi thành float python?

TurboturboTurbo

3233 huy hiệu vàng6 Huy hiệu bạc16 Huy hiệu đồng3 gold badges6 silver badges16 bronze badges

5

Bạn cần tính đến việc người dùng có thể không điền vào giá trị thích hợp:

try:
    miles = float(input("How many miles can you walk? "))
except ValueError:
    print("That is not a valid number of miles")

Một try/except xử lý ValueError có thể xảy ra khi float cố gắng chuyển đổi đầu vào thành một chiếc phao.

Đã trả lời ngày 1 tháng 11 năm 2013 lúc 22:47Nov 1, 2013 at 22:47

Simeon Vissersimeon VisserSimeon Visser

Huy hiệu vàng 116K1818 gold badges178 silver badges178 bronze badges

0

Vấn đề chính xác là những gì nhật ký theo dõi nói: Could not convert string to float

  • Nếu bạn có một chuỗi chỉ có số, Python đủ thông minh để thực hiện những gì bạn đang thử và chuyển đổi chuỗi thành một chiếc phao.
  • Nếu bạn có một chuỗi có các ký tự không phải là số, việc chuyển đổi sẽ thất bại và cho bạn lỗi mà bạn đang gặp phải.

Cách mà hầu hết mọi người sẽ tiếp cận vấn đề này là với try/except (xem tại đây) hoặc sử dụng hàm

try:
    miles = float(input("How many miles can you walk? "))
except ValueError:
    print("That is not a valid number of miles")
1 (xem tại đây).

Try/Except

try:
    miles = float(input("How many miles can you walk?: "))
except:
    print("Please type in a number!")

Isdigit()

miles = input("How many miles can you walk?: ")
if not miles.isdigit():
    print("Please type a number!")

Lưu ý rằng cái sau vẫn sẽ trả về sai nếu có số thập phân trong chuỗi

CHỈNH SỬA

Được rồi, tôi sẽ không thể liên hệ lại với bạn một lúc, vì vậy tôi sẽ đăng câu trả lời chỉ trong trường hợp.

while True:
    try:
        miles = float(input("How many miles can you walk?: "))
        break
    except:
        print("Please type in a number!")

#All of the ifs and stuff

Mã thực sự đơn giản:

  • Nó sẽ tiếp tục cố gắng chuyển đổi đầu vào thành một chiếc phao, lặp lại từ đầu nếu nó thất bại.
  • Cuối cùng khi nó thành công, nó sẽ thoát khỏi vòng lặp và đi đến mã bạn đặt thấp hơn.

Đã trả lời ngày 1 tháng 11 năm 2013 lúc 23:11Nov 1, 2013 at 23:11

Matt Reynoldsmatt ReynoldMatt Reynolds

7472 Huy hiệu vàng9 Huy hiệu bạc22 Huy hiệu đồng2 gold badges9 silver badges22 bronze badges

4

Traceback có nghĩa là những gì nó nói trên hộp thiếc.

>>> float('22')
22.0
>>> float('a lot')
Traceback (most recent call last):
  File "", line 1, in 
ValueError: could not convert string to float: 'a lot'

float có thể chuyển đổi các chuỗi trông giống như số thập phân hợp lệ thành floats. Nó không thể chuyển đổi chuỗi chữ và số tùy ý, đáng chú ý là bao gồm

try:
    miles = float(input("How many miles can you walk? "))
except ValueError:
    print("That is not a valid number of miles")
4.

Nếu bạn muốn xử lý đầu vào người dùng tùy ý, bạn phải nắm bắt ngoại lệ này, với một khối try/except.

Đã trả lời ngày 1 tháng 11 năm 2013 lúc 22:47Nov 1, 2013 at 22:47

Hướng dẫn why cant i convert string to float python? - tại sao tôi không thể chuyển đổi chuỗi thành float python?

Simeon Vissersimeon Visserroippi

Huy hiệu vàng 116K184 gold badges46 silver badges72 bronze badges

Vấn đề chính xác là những gì nhật ký theo dõi nói: Could not convert string to float

Nếu bạn có một chuỗi chỉ có số, Python đủ thông minh để thực hiện những gì bạn đang thử và chuyển đổi chuỗi thành một chiếc phao.Feb 10, 2020 at 1:24

Hướng dẫn why cant i convert string to float python? - tại sao tôi không thể chuyển đổi chuỗi thành float python?

Tại sao tôi không thể chuyển đổi chuỗi thành float python?

Python "valueError: Không thể chuyển đổi chuỗi thành float" xảy ra khi chúng ta chuyển một chuỗi không thể chuyển đổi thành một float (ví dụ: một chuỗi trống hoặc một chuỗi chứa các ký tự) sang lớp float ().Để giải quyết lỗi, xóa tất cả các ký tự không cần thiết khỏi chuỗi.remove all unnecessary characters from the string.

Bạn có thể chuyển đổi chuỗi thành float python không?

Chúng ta có thể chuyển đổi một chuỗi thành float trong python bằng hàm float ().Đây là một chức năng tích hợp được sử dụng để chuyển đổi một đối tượng thành số điểm nổi.using the float() function. This is a built-in function used to convert an object to a floating point number.

Làm cách nào để chuyển đổi danh sách chuỗi thành danh sách phao trong Python?

Cách pythonic nhất để chuyển đổi danh sách các chuỗi thành danh sách phao là sử dụng danh sách hiểu biết float = [float (x) cho x trong chuỗi].Nó lặp lại trên tất cả các phần tử trong danh sách và chuyển đổi từng phần tử danh sách X thành giá trị float bằng cách sử dụng hàm tích hợp float (x).use the list comprehension floats = [float(x) for x in strings] . It iterates over all elements in the list and converts each list element x to a float value using the float(x) built-in function.

Chuỗi có thể được chuyển đổi thành float không?

Chúng ta có thể chuyển đổi chuỗi thành float trong java bằng phương thức float.parseFloat (). parseFloat() method.