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ã:
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] = 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 = 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
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 float
s. 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
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