Làm thế nào để bạn kiểm tra xem một chuỗi chỉ chứa các số?
Tôi đã cho nó đi đây. Tôi muốn thấy cách đơn giản nhất để thực hiện điều này.
import string
def main[]:
isbn = input["Enter your 10 digit ISBN number: "]
if len[isbn] == 10 and string.digits == True:
print ["Works"]
else:
print["Error, 10 digit number was not inputted and/or letters were inputted."]
main[]
if __name__ == "__main__":
main[]
input["Press enter to exit: "]
Trig
9.8446 Huy hiệu vàng56 Huy hiệu bạc106 Huy hiệu Đồng6 gold badges56 silver badges106 bronze badges
Đã hỏi ngày 27 tháng 1 năm 2014 lúc 18:19Jan 27, 2014 at 18:19
4
Bạn sẽ muốn sử dụng phương thức
>>> "12345".isdigit[]
True
>>> "12345a".isdigit[]
False
>>>
0 trên đối tượng >>> "12345".isdigit[]
True
>>> "12345a".isdigit[]
False
>>>
1 của mình:if len[isbn] == 10 and isbn.isdigit[]:
Từ tài liệu
>>> "12345".isdigit[]
True
>>> "12345a".isdigit[]
False
>>>
0:str.isdigit[]
Trả về true nếu tất cả các ký tự trong chuỗi là các chữ số và có ít nhất một ký tự, sai nếu không. Các chữ số bao gồm các ký tự thập phân và các chữ số cần xử lý đặc biệt, chẳng hạn như các chữ số siêu tương thích. Điều này bao gồm các chữ số không thể được sử dụng để hình thành số trong cơ sở 10, như số Kharosthi. Chính thức, một chữ số là một ký tự có giá trị thuộc tính numeric_type = Digit hoặc numeric_type = thập phân.
Đã trả lời ngày 27 tháng 1 năm 2014 lúc 18:21Jan 27, 2014 at 18:21
MHLESTERMHLESTERmhlester
22.3k10 Huy hiệu vàng 50 Huy hiệu bạc74 Huy hiệu đồng10 gold badges50 silver badges74 bronze badges
2
Sử dụng
>>> "12345".isdigit[]
True
>>> "12345a".isdigit[]
False
>>>
3:>>> "12345".isdigit[]
True
>>> "12345a".isdigit[]
False
>>>
Đã trả lời ngày 27 tháng 1 năm 2014 lúc 18:20Jan 27, 2014 at 18:20
2
Sử dụng Chuỗi Chuỗi isDigit Hàm:
>>> s = '12345'
>>> s.isdigit[]
True
>>> s = '1abc'
>>> s.isdigit[]
False
AMC
2.5847 Huy hiệu vàng12 Huy hiệu bạc34 Huy hiệu đồng7 gold badges12 silver badges34 bronze badges
Đã trả lời ngày 27 tháng 1 năm 2014 lúc 18:20Jan 27, 2014 at 18:20
Sử dụng Chuỗi Chuỗi isDigit Hàm:ndpu
AMC4 gold badges52 silver badges68 bronze badges
2.5847 Huy hiệu vàng12 Huy hiệu bạc34 Huy hiệu đồng
import re
ndpundpu
re.match['^[0-9]*$',word]
21.6K4 Huy hiệu vàng52 Huy hiệu bạc68 Huy hiệu Đồng
re.match['^[0-9\.]*$',word]
Bạn cũng có thể sử dụng Regex,
re.match['^[0-9\.\ ]*$',word]
ví dụ: -1] word = "3487954"
ví dụ: -2] word = "3487.954"Sep 4, 2018 at 7:01
ví dụ: -3] Word = "3487.954 328"Devendra Bhat
Như bạn có thể thấy tất cả 3 EG có nghĩa là chỉ không có trong chuỗi của bạn. Vì vậy, bạn có thể làm theo các giải pháp tương ứng được đưa ra với họ.2 gold badges14 silver badges19 bronze badges
1
Đã trả lời ngày 4 tháng 9 năm 2018 lúc 7:01
>>> "\u2070".isdigit[] # unicode escaped 'superscript zero'
True
Devendra Bhatdevendra Bhat
1.1192 huy hiệu vàng14 Huy hiệu bạc19 Huy hiệu đồngNhư đã chỉ ra trong nhận xét này làm thế nào để bạn kiểm tra Python cho dù một chuỗi chỉ chứa các số? Phương pháp
>>> "12345".isdigit[]
True
>>> "12345a".isdigit[]
False
>>>
4 không hoàn toàn chính xác cho trường hợp sử dụng này, bởi vì nó trả về đúng với một số ký tự giống như chữ số:if len[isbn] == 10 and isbn.isdigit[]:
0Nếu điều này cần tránh, kiểm tra chức năng đơn giản sau đây, nếu tất cả các ký tự trong chuỗi là một chữ số giữa "0" và "9":Jul 25, 2019 at 19:16
import string
def contains_only_digits[s]:
# True for "", "0", "123"
# False for "1.2", "1,2", "-1", "a", "a1"
for ch in s:
if not ch in string.digits:
return False
return True
mitĐược sử dụng trong ví dụ từ câu hỏi:10 gold badges47 silver badges74 bronze badges
1
Đã trả lời ngày 25 tháng 7 năm 2019 lúc 19:16float numbers, negatives numbers, etc.. All the examples before will be wrong.
chỉ trích
if len[isbn] == 10 and isbn.isdigit[]:
110,8k10 Huy hiệu vàng47 Huy hiệu bạc74 Huy hiệu đồng
if len[isbn] == 10 and isbn.isdigit[]:
2Thế còn số lượng nổi, số tiêu cực, vv .. Tất cả các ví dụ trước đây sẽ sai.
Cho đến bây giờ tôi có một cái gì đó như thế này, nhưng tôi nghĩ nó có thể tốt hơn rất nhiều:Jan 25, 2018 at 10:44
Joe9008Joe9008Joe9008
sẽ trả về chỉ đúng nếu có một hoặc không '.' Trong chuỗi các chữ số.7 silver badges12 bronze badges
1
sẽ trả về sai
Đã trả lời ngày 25 tháng 1 năm 2018 lúc 10:44
6257 Huy hiệu bạc12 Huy hiệu Đồng
Vì mỗi lần tôi gặp phải một vấn đề với kiểm tra là vì đôi khi không thể không có và nếu STR không thể không có, chỉ sử dụng str.isdigit [] là không đủ vì bạn sẽ gặp lỗiThuộc tínhError: đối tượng 'Nonetype' không có thuộc tính 'isDigit'
Và sau đó bạn cần xác thực trước tiên là không có hay không. Để tránh một nhánh nhiều IF, một cách rõ ràng để làm điều này là:Mar 20, 2017 at 16:04
if len[isbn] == 10 and isbn.isdigit[]:
3zhihongHy vọng điều này sẽ giúp cho mọi người có cùng một vấn đề như tôi.2 gold badges23 silver badges32 bronze badges
1
Đã trả lời ngày 20 tháng 3 năm 2017 lúc 16:04
if len[isbn] == 10 and isbn.isdigit[]:
4ZhihongzhihongMay 10, 2015 at 8:52
cold_codercold_codercold_coder
1.6882 Huy hiệu vàng23 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges8 silver badges23 bronze badges
3
Bạn có thể sử dụng thử Catch Block tại đây:
Đã trả lời ngày 10 tháng 5 năm 2015 lúc 8:52
if len[isbn] == 10 and isbn.isdigit[]:
55344 Huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồng
if len[isbn] == 10 and isbn.isdigit[]:
6Có 2 phương pháp mà tôi có thể nghĩ đến để kiểm tra xem một chuỗi có tất cả các chữ số không
if len[isbn] == 10 and isbn.isdigit[]:
7Phương pháp 1 [sử dụng hàm isDigit [] tích hợp trong Python]:-Sep 10, 2019 at 9:13
Phương pháp 2 [thực hiện xử lý ngoại lệ trên đầu chuỗi]:-Rahul
Đầu ra của mã trên sẽ là:5 silver badges11 bronze badges
1
Đã trả lời ngày 10 tháng 9 năm 2019 lúc 9:13
RahulrahulFeb 29, 2020 at 13:27
3055 huy hiệu bạc11 huy hiệu đồngFaith
Bạn có thể sử dụng phương thức str.isDigit [] hoặc phương thức str.isnumeric []6 bronze badges
1
Solution:
if len[isbn] == 10 and isbn.isdigit[]:
8Đã trả lời ngày 29 tháng 2 năm 2020 lúc 13:27Jul 24 at 11:50
1
Faithfaith
if len[isbn] == 10 and isbn.isdigit[]:
9Phù hiệu bằng đồng 276Jul 16 at 8:51
2