【问题标题】:SyntaxError: invalid syntax - error with if statement in python [closed]SyntaxError:无效的语法-python中的if语句出错[关闭]
【发布时间】:2022-08-24 06:29:02
【问题描述】:

我是 Python 的半初学者,我想知道是否有人可以帮助我解决我收到的问题?

SyntaxError:无效的语法

这是在线“if generated_characters != < 100:\”

我想知道如果generated_characters 的答案超过 100 以要求用户选择 1-99 范围内的密码数量并重复原始问题,我将如何写这个。

我想我在这段代码中还有一些其他错误 - 如果有人能指出这些错误,我将不胜感激,但我很乐意自己尝试解决,因为它可能只是一个缩进错误或错字.

另外,如果代码效率低下,我深表歉意,因为我在编程或 Python 方面经验不足。

这是代码:

import random
import os

print(\"Welcome to your password generator! \\n\")

clear = (\'cls\' if os.name == \'nt\' else \'clear\')

chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!£$%&^*()@\"


def characters():

    generated_characters = int(input(
        f\"How many characters would you like your {passwords_amount} passwords to be? \"))

    if generated_characters != < 100:
        os.system(clear)
        print(
            \"For efficiency purposes, please choose a character amount that\'s 99 or less.\")
        characters()
    else:
        os.system(clear)

        for num in range(passwords_amount):
            password = \"\"
            for chars in range(generated_characters):
                password += random.choice(chars)
            print(password)


passwords_amount = int(
    input(\"How many passwords would you like to generate? \"))

characters()

提前致谢!

  • ! 不会否定,if generated_characters &gt; 100: 也不会否定,最终你会遇到 RecursionError 所以要小心
  • 谢谢,不胜感激!我怎样才能避免 RecursionError?
  • 使用相同条件的 while 循环代替 if 并在打印之后在该 while 循环中重复行 generated_characters = int(input(...)),没有 else
  • SO 不适用于一般代码反馈——为此,请参阅Code Review(但请确保您的代码首先工作)。

标签: python if-statement


【解决方案1】:

如果您从逻辑上考虑它,“不小于 100”的等效语句将是“如果大于 99”。所以这应该给你你所追求的。

if generated_characters > 99:

【讨论】:

  • 谢谢,从来没想过!
【解决方案2】:

这应该运行得非常顺利。还注意到,当您使用 password += random.choice(chars) 时,您只会返回数字。请改用password += random.choice(string.ascii_letters + string.digits)

有关整个功能脚本,请参见下文:

import random
import os
import string
print("Welcome to your password generator! \n")
clear = ('cls' if os.name == 'nt' else 'clear')
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!£$%&^*()@"


def characters():
    passwords_amount = int(
    input("How many passwords would you like to generate? "))
    
    generated_characters = int(input(
        f"How many characters would you like your {passwords_amount} passwords to be? "))

    if generated_characters >= 100:
        print(
            "For efficiency purposes, please choose a character amount that's 99 or less.")
        while generated_characters >= 100:    
            generated_characters = int(input(
                f"How many characters would you like your {passwords_amount} passwords to be? (keep below 100!) "))
            if generated_characters <=99:
                for num in range(passwords_amount):
                    password = ""
                    for chars in range(generated_characters):
                        password += random.choice(string.ascii_letters + string.digits)
                    print(password)
    else:
        os.system(clear)

        for num in range(passwords_amount):
            password = ""
            for chars in range(generated_characters):
                password += random.choice(string.ascii_letters + string.digits)
            print(password)



characters()

希望有帮助。

【讨论】:

  • 谢谢!我很感激,并且我自己会更多地研究代码,以了解为什么某些事情会做他们所做的事情哈哈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
相关资源
最近更新 更多