Hướng dẫn python getpass special characters - ký tự đặc biệt của python getpass

Tôi muốn người dùng sử dụng các ký tự đặc biệt khi tạo mật khẩu. (Ít nhất 1) Ví dụ:

Show
special_character= list(string.punctuation)
password=input("enter password:")
if any(i not in password for i in special_character):
    print("You should add a special character for creating strong password!")

Nó sẽ như thế này nhưng nó không hoạt động. Bạn có thể giúp tôi được không? Cảm ơn.

hỏi ngày 17 tháng 4 lúc 18:18Apr 17 at 18:18

Hướng dẫn python getpass special characters - ký tự đặc biệt của python getpass

Chỉ cần sử dụng

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
2, hoặc cách khác, sử dụng
>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
3 nhưng không có
>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
4 trong danh sách hiểu (điều này tốt hơn vì
>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
4 được chạy ít lần hơn về tổng thể, làm cho nó hiệu quả hơn một chút). Đây là những gì mã sẽ trông như thế nào:

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")

Đã trả lời ngày 17 tháng 4 lúc 18:21Apr 17 at 18:21

Hướng dẫn python getpass special characters - ký tự đặc biệt của python getpass

LecdilecdiLecdi

1.9872 huy hiệu vàng4 Huy hiệu bạc16 Huy hiệu đồng2 gold badges4 silver badges16 bronze badges

Mật khẩu Python với các ký tự đặc biệt có ví dụ mã

Xin chào mọi người, trong bài đăng này, chúng ta sẽ xem xét cách mật khẩu Python với vấn đề ký tự đặc biệt có thể được giải quyết bằng ngôn ngữ máy tính.

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')

Chúng tôi đã chỉ ra cách giải quyết mật khẩu Python với vấn đề đặc biệt về các ký tự đặc biệt khi xem xét một số trường hợp khác nhau.

Làm thế nào để bạn vượt qua một ký tự đặc biệt với mật khẩu trong Python?

Đơn giản chỉ cần sử dụng \ ký tự trước '!' hoặc các ký tự đặc biệt khác. Hiển thị hoạt động trên bài viết này. Python không thích các ký tự đặc biệt.29-SEPT-2014

Bạn có thể sử dụng các ký tự đặc biệt trong Python không?

Python3. Một định danh trong Python không thể sử dụng bất kỳ biểu tượng đặc biệt nào như!, @, #, $, %, Vv.22-Jun-2021

Làm thế nào để bạn chèn một nhân vật đặc biệt trong Python?

Để chèn các ký tự là bất hợp pháp trong một chuỗi, hãy sử dụng một ký tự thoát. Một nhân vật thoát là một dấu gạch chéo ngược \ theo sau là nhân vật bạn muốn chèn.

Làm cách nào để mật khẩu Python?

Sử dụng hàm getPass () để nhắc mật khẩu người dùng Hàm getPass () được sử dụng để nhắc cho người dùng sử dụng dấu nhắc chuỗi và đọc đầu vào từ người dùng làm mật khẩu. Đầu vào đọc mặc định vào mật khẩu của Nhật Bản: Được trả lại cho người gọi dưới dạng chuỗi.15-sept-2022

%S có nghĩa là gì trong Python?

Biểu tượng % được sử dụng trong Python với nhiều loại dữ liệu và cấu hình. %s đặc biệt được sử dụng để thực hiện kết nối các chuỗi với nhau. Nó cho phép chúng tôi định dạng một giá trị bên trong chuỗi.02-feb-2021

\ R làm gì trong Python?

Trong các chuỗi Python, dấu gạch chéo ngược "\" là một nhân vật đặc biệt, còn được gọi là nhân vật "Escape". Nó được sử dụng để thể hiện các ký tự khoảng trắng nhất định: "\ t" là một tab, "\ n" là một dòng mới và "\ r" là một sự trở lại vận chuyển. Ngược lại, tiền tố một ký tự đặc biệt với "\" biến nó thành một ký tự thông thường.

Sự khác biệt giữa '/' và toán tử trong Python là gì?

Cái đầu tiên là Phân khu Float ("/") và thứ hai là bộ phận số nguyên ("//") hoặc phân chia sàn.

Ký tự đặc biệt mật khẩu là gì?

Mật khẩu Các ký tự đặc biệt là một lựa chọn các ký tự chấm câu có mặt trên bàn phím tiêu chuẩn của Hoa Kỳ và thường được sử dụng trong mật khẩu. Các hệ điều hành và ứng dụng khác nhau có thể áp dụng các giới hạn cho tập hợp này: Trình quản lý nhận dạng Oracle và Microsoft Active Directory.

Làm thế nào để bạn in các biểu tượng đặc biệt trong Python?

Sử dụng repr () để in các ký tự đặc biệt

  • A_String = "\ nString \ n"
  • literal_string = repr (a_string)
  • print(literal_string)

Làm thế nào để tôi có được Unicode trong Python?

Để bao gồm các ký tự Unicode trong mã nguồn Python của bạn, bạn có thể sử dụng các ký tự Escape Unicode trong Mẫu \ U0123 trong chuỗi của bạn. Trong Python 2. X, bạn cũng cần tiền tố chuỗi theo nghĩa đen với 'u'.

Tôi cần xóa tất cả các ký tự đặc biệt, dấu câu và khoảng trống từ một chuỗi để tôi chỉ có chữ cái và số.

Công ty JSC

63.3K13 Huy hiệu vàng149 Huy hiệu bạc193 Huy hiệu Đồng13 gold badges149 silver badges193 bronze badges

Hỏi ngày 30 tháng 4 năm 2011 lúc 17:41Apr 30, 2011 at 17:41

Điều này có thể được thực hiện mà không cần Regex:

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'

Bạn có thể sử dụng

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
6:

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.

Nếu bạn khăng khăng sử dụng Regex, các giải pháp khác sẽ làm tốt. Tuy nhiên, lưu ý rằng nếu nó có thể được thực hiện mà không cần sử dụng một biểu thức thông thường, đó là cách tốt nhất để đi về nó.

wjandrea

24.2k8 Huy hiệu vàng51 Huy hiệu bạc71 Huy hiệu đồng8 gold badges51 silver badges71 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 17:47Apr 30, 2011 at 17:47

user225312user225312user225312

120K66 Huy hiệu vàng167 Huy hiệu bạc181 Huy hiệu Đồng66 gold badges167 silver badges181 bronze badges

6

Dưới đây là một regex để khớp một chuỗi các ký tự không phải là chữ cái hoặc số:

[^A-Za-z0-9]+

Đây là lệnh Python để thay thế Regex:

re.sub('[^A-Za-z0-9]+', '', mystring)

wjandrea

24.2k8 Huy hiệu vàng51 Huy hiệu bạc71 Huy hiệu đồng8 gold badges51 silver badges71 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 17:47Apr 30, 2011 at 17:46

120K66 Huy hiệu vàng167 Huy hiệu bạc181 Huy hiệu ĐồngAndy White

Dưới đây là một regex để khớp một chuỗi các ký tự không phải là chữ cái hoặc số:47 gold badges173 silver badges208 bronze badges

9

Đây là lệnh Python để thay thế Regex:

import re
cleanString = re.sub('\W+','', string )

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 17:46

Andy Whiteeandy WhiteAug 7, 2014 at 13:26

84,8K47 Huy hiệu vàng173 Huy hiệu bạc208 Huy hiệu đồngtuxErrante

Cách ngắn hơn:10 silver badges18 bronze badges

6

Nếu bạn muốn khoảng trống giữa các từ và số thay thế '' bằng ''

Đã trả lời ngày 7 tháng 8 năm 2014 lúc 13:26

import re
re.sub('\W+','', string)

tuxerrantetuxerrante3x faster than the next fastest provided top answer.

1.16410 Huy hiệu bạc18 Huy hiệu đồngø) may not be striped using this method.


TLDR

  • >>> string = "Special $#! characters   spaces 888323"
    >>> ''.join(e for e in string if e.isalnum())
    'Specialcharactersspaces888323'
    
    8
  • >>> string = "Special $#! characters   spaces 888323"
    >>> ''.join(e for e in string if e.isalnum())
    'Specialcharactersspaces888323'
    
    9

Tôi đã tính thời gian các câu trả lời được cung cấp.

'.join(e for e in string if e.isalnum())
  • thường nhanh hơn 3 lần so với câu trả lời hàng đầu được cung cấp nhanh nhất tiếp theo.
  • Cần thận trọng khi sử dụng tùy chọn này. Một số ký tự đặc biệt (ví dụ: Ø) không được sọc bằng phương pháp này.

Sau khi thấy điều này, tôi đã quan tâm đến việc mở rộng các câu trả lời được cung cấp bằng cách tìm ra cách thực hiện trong khoảng thời gian ít nhất, vì vậy tôi đã trải qua và kiểm tra một số câu trả lời được đề xuất với >>> string = "Special $#! characters spaces 888323" >>> ''.join(e for e in string if e.isalnum()) 'Specialcharactersspaces888323' 7 so với hai trong số các chuỗi ví dụ:

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
0
  • ví dụ 1
  • S.isalnum() -> bool
    
    Return True if all characters in S are alphanumeric
    and there is at least one character in S, False otherwise.
    
    0 - Kết quả: 10.7061979771

S.isalnum() -> bool Return True if all characters in S are alphanumeric and there is at least one character in S, False otherwise. 1 - Kết quả: 7.78372597694

import re
re.sub('\W+','', string)
  • Ví dụ 2
  • S.isalnum() -> bool
    
    Return True if all characters in S are alphanumeric
    and there is at least one character in S, False otherwise.
    
    0 - Kết quả: 7.10785102844

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
1 - Kết quả: 4.12814903259

Ví dụ 3 can be 3x faster than Example 1.

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
0 - Kết quả: 3.11899876595Aug 6, 2016 at 1:04

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
1 - Kết quả: 2.78014397621mbeacom

Các kết quả trên là một sản phẩm của kết quả trả lại thấp nhất từ ​​trung bình là:

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
614 silver badges25 bronze badges

7

Ví dụ 3 có thể nhanh hơn 3 lần so với ví dụ 1.

Đã trả lời ngày 6 tháng 8 năm 2016 lúc 1:04

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
2

MBeacommbeaCom

1.32814 Huy hiệu bạc25 Huy hiệu đồng

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
3

Python 2.*

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
4

Tôi nghĩ chỉ

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
7 hoạt động

Python 3.*Apr 14, 2016 at 9:32

Trong Python3, hàm

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
8 sẽ trả về một đối tượng có thể điều chỉnh được (thay vì chuỗi không giống như ở trên). Người ta phải tham gia lại để lấy một chuỗi từ ITERTABLE:Grijesh Chauhan

hoặc để vượt qua

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
9 khi sử dụng tham gia (không chắc chắn nhưng có thể nhanh chóng một chút)19 gold badges134 silver badges199 bronze badges

4

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
5

Lưu ý: Giải nén trong

[^A-Za-z0-9]+
0 hợp lệ từ Python> = 3.5

Đã trả lời ngày 14 tháng 4 năm 2016 lúc 9:32May 25, 2014 at 9:28

Grijesh Chauhangrijesh Chauhanpkm

55.6K19 Huy hiệu vàng134 Huy hiệu bạc199 Huy hiệu đồng1 gold badge27 silver badges44 bronze badges

0

Bạn có thể thêm nhiều ký tự đặc biệt hơn và điều đó sẽ được thay thế bằng '' có nghĩa là không có gì tức là chúng sẽ bị xóa.is not what I want, instead of enumerating explicitly what I don't want.

Đã trả lời ngày 25 tháng 5 năm 2014 lúc 9:28

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
6

PKMPKM

2.6151 Huy hiệu vàng27 Huy hiệu bạc44 Huy hiệu đồng

Mẹo bổ sung: Nếu bạn cũng cần viết thường kết quả, bạn có thể làm cho regex thậm chí nhanh hơn và dễ dàng hơn, miễn là bạn sẽ không tìm thấy bất kỳ chữ hoa nào bây giờ.lowercase the result, you can make the regex even faster and easier, as long as you won't find any uppercase now.

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
7

Đã trả lời ngày 5 tháng 9 năm 2018 lúc 10:02Sep 5, 2018 at 10:02

AndreaandreaAndrea

3.9304 Huy hiệu vàng34 Huy hiệu bạc53 Huy hiệu Đồng4 gold badges34 silver badges53 bronze badges

Chuỗi.Punction chứa các ký tự sau:

'! "#$%& \' ()*+,-./:; [Email & nbsp;

Bạn có thể sử dụng các chức năng Dịch và Maketrans để ánh xạ các dấu câu đến các giá trị trống (thay thế)

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
8

Output:

special_characters = list(string.punctuation)
password = input("Enter password: ")
if not any(i in password for i in special_characters):
    print("You should add a special character for creating strong password!")
9

Đã trả lời ngày 17 tháng 3 năm 2020 lúc 15:14Mar 17, 2020 at 15:14

Vlad Bezdenvlad BezdenVlad Bezden

75.2K23 Huy hiệu vàng234 Huy hiệu bạc174 Huy hiệu đồng23 gold badges234 silver badges174 bronze badges

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
0

Đã trả lời ngày 15 tháng 6 năm 2018 lúc 12:09Jun 15, 2018 at 12:09

Snehasnehasneha

7596 Huy hiệu bạc7 Huy hiệu Đồng6 silver badges7 bronze badges

Giả sử bạn muốn sử dụng regex và bạn muốn/cần mã unicode-đồng nhận thức 2.x sẵn sàng 2to3:

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
1

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 21:07Apr 30, 2011 at 21:07

John Machinjohn MachinJohn Machin

79.3k11 Huy hiệu vàng137 Huy hiệu bạc182 Huy hiệu đồng11 gold badges137 silver badges182 bronze badges

Cách tiếp cận chung nhất là sử dụng 'danh mục' của bảng Unicodedata phân loại từng ký tự. Ví dụ. Các bộ lọc mã sau đây chỉ có thể in các ký tự dựa trên danh mục của chúng:

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
2

Nhìn vào URL đã cho ở trên cho tất cả các loại liên quan. Tất nhiên bạn cũng có thể lọc theo các loại dấu chấm câu.

Biogeek

21.1K21 Huy hiệu vàng80 Huy hiệu bạc137 Huy hiệu đồng21 gold badges80 silver badges137 bronze badges

Đã trả lời ngày 30 tháng 4 năm 2011 lúc 18:00Apr 30, 2011 at 18:00

2

Đối với các ngôn ngữ khác như tiếng Đức, tiếng Tây Ban Nha, tiếng Đan Mạch, tiếng Pháp, vv có chứa các nhân vật đặc biệt (như "Umlaute" tiếng Đức là

[^A-Za-z0-9]+
2,
[^A-Za-z0-9]+
3,
[^A-Za-z0-9]+
4) chỉ cần thêm chúng vào chuỗi tìm kiếm Regex:

Ví dụ cho Đức:

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
3

Đã trả lời ngày 27 tháng 6 năm 2020 lúc 10:00Jun 27, 2020 at 10:00

Petezurichpetezurichpetezurich

8.2808 Huy hiệu vàng37 Huy hiệu bạc54 Huy hiệu đồng8 gold badges37 silver badges54 bronze badges

Điều này sẽ loại bỏ tất cả các ký tự đặc biệt, dấu câu và không gian từ một chuỗi và chỉ có số và chữ cái.

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
4

Đã trả lời ngày 11 tháng 5 năm 2021 lúc 8:29May 11, 2021 at 8:29

Dùng dịch thuật:

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
5

Hãy cẩn thận: Chỉ hoạt động trên các chuỗi ASCII.

Đã trả lời ngày 23 tháng 3 năm 2016 lúc 19:37Mar 23, 2016 at 19:37

JJmurrejjMurrejjmurre

3323 Huy hiệu bạc14 Huy hiệu Đồng3 silver badges14 bronze badges

2

Điều này sẽ loại bỏ tất cả các ký tự không phải là một số ký tự ngoại trừ không gian.

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
6

Không gian ký tự đặc biệt 888323

Dharman ♦

Phù bằng vàng 27.6K2121 gold badges75 silver badges126 bronze badges

Đã trả lời ngày 1 tháng 2 năm 2021 lúc 16:57Feb 1, 2021 at 16:57

0

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
7

Giống như trích dẫn kép. "" "

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
8

Đã trả lời ngày 16 tháng 7 năm 2018 lúc 11:52Jul 16, 2018 at 11:52

Sau 10 năm, dưới đây tôi đã viết có giải pháp tốt nhất. Bạn có thể xóa/làm sạch tất cả các ký tự đặc biệt, dấu câu, ký tự ASCII và không gian khỏi chuỗi.

special_chars =  ['$', '&', '!']
password = input("Provide your password: ")    
invalid = False
for char in password:
    if char not in special_chars:
        print('Invalid char found! Use only: {}'.format(special_chars))
        invalid = True
        break
if not invalid:
    print('Valid password.')
9

Đã trả lời ngày 27 tháng 10 năm 2021 lúc 13:21Oct 27, 2021 at 13:21

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
0

Đã trả lời ngày 6 tháng 4 lúc 15:02Apr 6 at 15:02

Art Binduart BinduArt Bindu

5213 Huy hiệu bạc11 Huy hiệu đồng3 silver badges11 bronze badges

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
1

và bạn sẽ xem kết quả của bạn là

'AskHnlaskDjalsdk

Đã trả lời ngày 25 tháng 2 năm 2016 lúc 8:00Feb 25, 2016 at 8:00

DSW WDSDSW WDSDsw Wds

4644 Huy hiệu bạc17 Huy hiệu đồng4 silver badges17 bronze badges

1

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ Python Regex chuỗi hoặc đặt câu hỏi của riêng bạn.