我正在尝试使用 Python 2.7 在我的
Jupyter 笔记本中使用
docstrings
带三引号。
我可以禁用自动关闭括号/引号,但我非常喜欢它们;工作流程大幅增加。
有谁知道如何在不过度引用的情况下进行三重引号,同时保持自动关闭功能?
如果我按
"
键 3x
我会得到 """"""
;3x
和 delete
一次,我就会按下 """"
;和
如果我按 3x
和 delete
两次,我会得到 ""
很烦人吧? 如何才能两全其美(自动关闭 | 文档字符串)?
这是一个相当低级的问题,但我在任何地方都没有看到简单的解决方案,因此答案应该对社区有用。如果您投反对票,您能解释一下为什么这是一个糟糕的问题吗?
没有什么问题。当您输入 3 " 时,您的光标位于结果 6 的中间。因此,您输入的任何内容都在字符串内并且已自动关闭。
准确键入此字符串:
"""This is working
,无需单击或以其他方式移动光标。结果将是一个格式正确的字符串,因为它将自动关闭该字符串。因此你同时拥有字符串和自动关闭功能。
导入smtplib 从 email.mime.text 导入 MIMEText 从 email.mime.multipart 导入 MIMEMultipart 随机导入 导入时间
defgenerate_otp(): """生成随机 6 位 OTP。""" 返回 random.randint(100000, 999999)
def send_otp(email_recipient, otp): ”“” 模拟将 OTP 发送到用户的电子邮件。 连接到电子邮件服务器并发送 OTP。 ”“” sender_email = "[电子邮件受保护]" sender_password =“您的密码或应用程序特定密码” smtp_server =“smtp.gmail.com” smtp_端口 = 587
subject = "Your OTP Code"
body = f"Your OTP code is: {otp}. Please use this to verify your access."
# Setting up the email message
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = email_recipient
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))
try:
# Connect to the SMTP server
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # Secure connection
server.login(sender_email, sender_password)
server.send_message(message)
print("OTP sent successfully to the email!")
except Exception as e:
print(f"Failed to send OTP: {e}")
finally:
server.quit()
def get_user_otp_input(): """提示用户输入 OTP。""" return input("输入发送到您邮箱的一次性密码:").strip()
def validate_otp(生成的OTP,输入的OTP,重试= 3): ”“” 验证用户输入的 OTP。 如果输入不正确,允许用户重试最多“重试”次。 ”“” 当重试次数 > 0 时: 如果进入的_otp == str(生成的_otp): print("已授予访问权限!OTP 验证成功。") 返回真 别的: 重试 -= 1 如果重试次数 > 0: print(f"OTP 不正确。您还剩 {retries} 次尝试。") 输入的 otp = get_user_otp_input() 别的: print("访问被拒绝!错误尝试次数过多。") 返回错误
if name == "main": print("欢迎使用OTP验证系统")
# Step 1: Generate OTP
otp = generate_otp()
# Step 2: Send OTP
recipient_email = input("Enter your email address: ").strip()
send_otp(recipient_email, otp)
# Step 3: Prompt user for OTP entry
print("An OTP has been sent to your email. Please check your inbox.")
entered_otp = get_user_otp_input()
# Step 4: Validate OTP
validate_otp(otp, entered_otp)