2
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang cố gắng viết một chương trình Python kiểm tra xem một chuỗi nhất định là pangram - chứa tất cả các chữ cái của bảng chữ cái.
Do đó, "We promptly judged antique ivory buckles for the next prize"
sẽ trả về
import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
0 trong khi bất kỳ chuỗi nào không chứa mọi chữ cái của bảng chữ cái ít nhất một lần sẽ trả về import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
1.Tôi tin rằng tôi nên sử dụng Regex cho cái này, nhưng tôi không chắc làm thế nào. Nó sẽ trông giống như thế này:
import sys
import re
input_string_array = sys.stdin.readlines[]
input_string = input_string_array[0]
if [re.search['string contains every letter of the alphabet',input_string]:
return True
else:
return False
Rypel
4.4682 Huy hiệu vàng24 Huy hiệu bạc36 Huy hiệu đồng2 gold badges24 silver badges36 bronze badges
Hỏi ngày 5 tháng 4 năm 2016 lúc 12:54Apr 5, 2016 at 12:54
2
Đây không phải là điều tôi giải quyết với biểu thức chính quy, không. Tạo một tập hợp của chuỗi thấp hơn và kiểm tra xem nó có phải là siêu của các chữ cái của bảng chữ cái không:
import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
Chỉ khi mọi chữ cái của bảng chữ cái nằm trong tập hợp được tạo từ văn bản đầu vào thì nó mới là một siêu sao; Bằng cách sử dụng Superset và không bình đẳng, bạn cho phép dấu câu, chữ số và khoảng trắng, ngoài các chữ cái [ASCII].
Demo:
>>> import string
>>> alphabet = set[string.ascii_lowercase]
>>> input_string = 'We promptly judged antique ivory buckles for the next prize'
>>> set[input_string.lower[]] >= alphabet
True
>>> set[input_string[:15].lower[]] >= alphabet
False
Đã trả lời ngày 5 tháng 4 năm 2016 lúc 12:56Apr 5, 2016 at 12:56
Martijn Pieters ♦ Martijn Pieters♦Martijn Pieters
991K276 Huy hiệu vàng3905 Huy hiệu bạc3254 Huy hiệu đồng276 gold badges3905 silver badges3254 bronze badges
3
Đây là giải pháp của tôi trong Python:
alphabet = "abcdefghijklmnopqrstuvwxyz"
sentence = input[]
sentence = sentence.lower[]
missing = ''
for letter in alphabet:
if letter not in sentence:
missing = missing+letter
if [len[missing] != 0]:
print["missing", missing]
else:
print["pangram"]
Đã trả lời ngày 19 tháng 3 năm 2021 lúc 17:45Mar 19, 2021 at 17:45
Bạn không cần Regex. Những gì bạn muốn có thể được thực hiện trong hai dòng với hiệu quả không gian tốt.two lines with good space efficiency.
ms = itertools.chain[range[ord["a"],ord["z"]],range[ord["A"],ord["Z"]]]
flag = all[chr[o] in string for o in ms]
Đó là nó.
import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
2 là chuỗi bạn muốn kiểm tra. import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
3 sẽ là import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
0 hoặc import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
1 tùy thuộc vào việc tất cả các ký tự có ở import string
alphabet = set[string.ascii_lowercase]
def ispangram[input_string]:
return set[input_string.lower[]] >= alphabet
2 hay không.Đã trả lời ngày 5 tháng 4 năm 2016 lúc 13:18Apr 5, 2016 at 13:18
C Pandac PandaC Panda
3.1272 Huy hiệu vàng10 Huy hiệu bạc11 Huy hiệu đồng2 gold badges10 silver badges11 bronze badges
Một pangram là một hàm chứa ít nhất mỗi chữ cái của bảng chữ cái. Tôi đã thử theo cách này:
def pangram[]:
n = str[input['give me a word to check if it is a pangram:\n']]
n = n.lower[]
n = n.replace[' ','']
if not isinstance[n, str]:
return n, False
elif set[n] >= set['abcdefghijklmnopqrstuvxywz']:
return n, True
else:
return n, False
Hàm isinstance [n, str] kiểm tra xem n là một chuỗi. Hàm SET [] cung cấp cho chúng ta một bộ. Ví dụ: tập hợp ['Penny'] trả về {'y', 'e', 'p', 'n'} ... như bạn thấy đó là một tập hợp không có các chữ cái lặp lại.
Đã trả lời ngày 1 tháng 4 năm 2017 lúc 14:33Apr 1, 2017 at 14:33
3
Hôm nay tôi đã thực hiện cùng một bài tập, có lẽ đó không phải là aproach tốt nhất, nhưng tôi nghĩ nó dễ hiểu.
def ispangram[s]:
stringy = ''
flag = True
validLetters = "abcdefghijklmnopqrstuvwxyz"
#transform the given string in simple string with no symbols only letters
for char in s.lower[]:
if[char in validLetters]:
stringy += char
#check if all the letters of the alphabet exist on the string
for char in validLetters:
if[char in stringy]:
pass
else:
flag = False
break
return flag
if[ispangram["We promptly judged antique ivory buckles for the next prize"]]:
print["It's PANGRAM!"]
else:
print["It's not Pangram :["]
Đã trả lời ngày 22 tháng 2 năm 2018 lúc 18:27Feb 22, 2018 at 18:27
2
import string
def ispangram[str1, alphabet=string.ascii_lowercase]:
return ''.join[sorted[set[str1.lower[].replace[" ",""]]]] == alphabet
Đầu tiên đã thay đổi tất cả các bảng chữ cái thành chữ thường và sau đó loại bỏ tất cả các không gian bằng cách sử dụng thay thế. Sau đó chuyển đổi thành Set để có các ký tự độc đáo và sau đó được sử dụng chức năng được sắp xếp để sắp xếp theo thứ tự bảng chữ cái. Vì chức năng được sắp xếp đưa ra một danh sách, vì vậy hãy tham gia Func để tham gia mà không có khoảng trắng và sau đó so sánh nó với tất cả các ký tự viết thường.
Đã trả lời ngày 20 tháng 10 năm 2020 lúc 11:56Oct 20, 2020 at 11:56
Đây là giải pháp của tôi:
def isaPangrams[s]:
alph = list[string.ascii_lowercase]
s = s.lower[]
s = list[s]
for letter in alph:
if letter not in s:
print['not pangram']
present='false'
break
if letter in s:
present = 'true'
if present == 'true':
print['pangram']
if __name__ == '__main__':
s = input[]
answer = isaPangrams[s]
Tư cách
2.3131 Huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu đồng1 gold badge26 silver badges39 bronze badges
Đã trả lời ngày 7 tháng 1 lúc 8:26Jan 7 at 8:26
1