a = raw_input('How much is 1 share in that company? ')
while not a.isdigit():
print("You need to write a number!\n")
a = raw_input('How much is 1 share in that company? ')
Điều này chỉ hoạt động nếu người dùng nhập integer
, nhưng tôi muốn nó hoạt động ngay cả khi họ nhập float
, nhưng không phải khi họ nhập string
.Sử dụng isdigit cho phao nổi?
Vì vậy, người dùng sẽ có thể nhập cả hai 9
và 9.2
, nhưng không phải abc
.
Tôi nên làm như thế nào?
rất linh hoạt! Tuy nhiên, giải pháp của dan04 cảm thấy nhiều hơn pythonic. Ở đây tôi định nghĩa pythonic là "giữa hai giải pháp phức tạp tương đương, thích cái không sử dụng cụm từ thông dụng." Điều đó vẫn còn nhiều ứng dụng cho các biểu thức thông thường. –
@Steven Rumbalski: Vâng, giải pháp của dan04 có vẻ là Pythonic hơn, ý nghĩ của tôi có thể thực sự ít mã hơn. –
Thật không may đây không phải là một regex tốt cho phao nổi và do đó không thực sự trả lời câu hỏi. Ví dụ: nó không khớp với ".1" nhưng DOES khớp với "5abc".Ngoài ra còn có các giá trị âm và các ký hiệu khác, vì vậy nó có lẽ là lý tưởng để sử dụng câu trả lời của dan04, biến nó thành một hàm nếu bạn cần sử dụng nó trong một danh sách hiểu hoặc đối số. – mrooney