输入和结果没有附加到字典?

时间:2021-04-04 19:32:17

标签: python python-3.x

import hashlib
running = True
count = 0
while running:
    saved_hashes = {'input_str': [], 'md5hash': []}
    if count == 1:
        show_q = input('Show other str/hashes? [Y/N]')
        show_q.lower()
        if show_q == 'y':
            print(saved_hashes)
    str_input = input('Enter a string: ')
    str_hash_obj = hashlib.md5(str_input.encode())
    str_to_md5_hash = str_hash_obj.hexdigest()

    print(f'Hash {str_to_md5_hash}')
    saved_hashes['input_str'].extend(str_input)
    saved_hashes['md5hash'].extend(str_to_md5_hash)
    run_choice = input('Again? [Y/N]')
    run_choice.lower()
    if run_choice == 'y':
        count += 1
        continue
    else:
        break

这是代码。我对 Python 还是很陌生,所以我不知道为什么没有附加输入和结果。

1 个答案:

答案 0 :(得分:0)

您想要创建 list 的字典。在 while 循环之前创建一个空列表,然后 append 字典到循环内的列表:

import hashlib
running = True
count = 0

saved_hashes = []
while running:
    if count == 1:
        show_q = input('Show other str/hashes? [Y/N]')
        show_q.lower()
        if show_q == 'y':
            print(saved_hashes)
    str_input = input('Enter a string: ')
    str_hash_obj = hashlib.md5(str_input.encode())
    str_to_md5_hash = str_hash_obj.hexdigest()

    print(f'Hash {str_to_md5_hash}')
    saved_hashes.append({'input_str': [str_input], 'md5hash': [str_to_md5_hash]})
    run_choice = input('Again? [Y/N]')
    run_choice.lower()
    if run_choice == 'y':
        count += 1
        continue
    else:
        break