gpt4 book ai didi

python - 在 Python 中根据用户输入执行特定功能

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:46 26 4
gpt4 key购买 nike

<分区>

我正在制作一个 python 脚本,该脚本使用用户在输入中使用 hashlib 指定的算法对字符串进行哈希处理。在对字符串进行哈希处理后,无论用户选择何种哈希算法,我都想对其执行相同的操作。因此,我想为它创建一个函数,而不是重复代码,但不知道如何根据输入更改内置哈希函数。我的代码现在看起来像这样:

current_algorithm = input('Hash algorithm: ')    

if current_algorithm == 'md5':
hashed = hashlib.md5(word).hexdigest()
# Execute the same code here
elif current_algorithm == 'sha256':
hashed = hashlib.sha256(word).hexdigest()
# Execute the same code here
elif current_algorithm == 'sha512':
hashed = hashlib.sha512(word).hexdigest()
# Execute the same code here

hashlib.algorithm(word).hexdigest() 函数必须根据用户选择的算法进行更改。例如,如果用户选择 sha512,代码将如下所示:hashlib.sha512(word).hexdigest(),相反,如果用户选择 md5,则代码将如下所示:hashlib.md5(word).hexdigest() 等等。但是,这些行下的代码完全相同,现在我重复了 3 次,如果将来添加更多算法,可能会重复更多次。因此,如何制作一个根据用户输入更改算法的函数,这样我就不必重复那么多代码了?我想利用争论,但不知道如何解决。这是我的想法,但行不通,因为您无法更改内置方法:

def func(algorithm):
hashlib.algorithm(word).hexdigest()
# Execute the same code here

if current_algorithm == 'md5':
func(current_algorithm)
elif current_algorithm == 'sha256':
func(current_algorithm)
elif current_algorithm == 'sha512':
func(current_algorithm)

然后,在每个 if 语句下,我会调用该函数,并将用户输入(包含哈希算法)作为参数传递给它。

我希望问题很清楚,如果有任何帮助,我将不胜感激!

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com