python - 在python3中创建变量来分配多个值

标签 python

我有一个代码:

import random

vowels, consonants='aeiou','bcdfghjklmnpqrstvwxyz'

terms = int(input("How many letters you want for your baby's name? "))

def babyname():
    for i in range(0, terms):
        j=['','','','','']
        k = input("What letter do you want? Enter 'v' for vowels, 'c' for consonants: ")
        if k == 'v':
            j[i] = random.choice(vowels)
        elif k == 'c':
            j[i] =random.choice(consonants)
        else:
            k = input("What letter do you want? Enter 'v' for vowels, 'c' for consonants: ")
        print(j)

babyname()

输入:i) 它将询问要生成的单词的字母数。 ii)它会询问每个字母是辅音还是元音。

预期输出:i) 使用输入的字母数打印生成的单词

但是产生了输出:i) 仅在限制之前生成的字母。如果输入5。它仅生成第 5 个字母。

我做了什么:我想将变量 j 设为索引为 i 的列表,以便稍后添加所有字符串来生成单词。但这并没有发生。

要做什么?

最佳答案

您的代码比您刚刚询问的错误更多。

例如,如果用户输入 7 个字母,则 j 列表中只有 5 个字母的空间,从而引发索引错误。

解决方案是创建一个空列表并每次都附加到该列表。

<小时/>

你的a字典是多余的,也许你只是想学习如何使用字典?您可以比较:

if k == 'v':
     #do something

elif k == 'c':
     #do something
<小时/>

你的else语句没有任何意义,因为你的用户可以输入任何内容,如果它不在你的字典中,它会抛出一个keyError,也许摆脱它?也许这还没有完全实现,但是将用户输入作为字典的键查找通常是一个坏主意。使用其他东西。

<小时/>

最后,为了回答您的问题,请将 print(j) 行移到 for 循环 之外。当一切都说完了之后,它应该看起来像这样:

import random

vowels, consonants='aeiou','bcdfghjklmnpqrstvwxyz'

terms = int(input("How many letters you want for your baby's name? "))

def babyname():
    j = []
    for i in range(0, terms):
        a = {'v':'v','c':'c','l':'l'}
        k = input("What letter do you want? Enter 'v' for vowels, 'c' for consonants: ")
        if a[k] == 'v':
            j.append(random.choice(vowels))
        elif a[k] == 'c':
            j.append(random.choice(consonants))
        else:
            print('not an option')
    print(j)

babyname()

这将打印一个列表,所以也许您想使用 join() 将其组合为一个字符串:

print(''.join(j))

关于python - 在python3中创建变量来分配多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887999/

相关文章:

python - 在 tensorflow 中,如何在不实际训练的情况下评估神经元网络

python - 计算Python中分配给某个值的变量数量

Python:太多 join()?

python - 创建一个函数的副本,并修复了一些变量

python - 如何将随机函数作为参数传递?

python - 在 Django 1.7 中使用 html 发送电子邮件

python - re.compile().match 在 win10 和 ubuntu 上与 python3 的不同结果

python 2.7 matplotlib pylab : My plot is empty. 如何使数据点显示在图中?

python - 对 Python 的 `time.strftime()` 使用 Unicode 格式

Python:如何使 ANSI 转义码也能在 Windows 中工作?