无法正确完成python项目

时间:2018-10-26 15:17:55

标签: python python-3.x

在我大学学习期间,我被要求**创建一个程序,该程序从字符串以及其他字符(未定义[可能全部])中计算数字(0-9)。您的程序将输出一个11个字符的字符串,该字符串将计算输入中遇到的数字。第一个字符是在字符串中读取的ZEROS python的数量,第二个字符将执行相同的工作,但将显示它看到了多少ONES和ETC。第11个字符将是我的字符串中有多少个NON数字。如果数字超过9次,则应将其标记为ASTERISK。例如。 INPUT = 01710 OUTPUT = 22000001000 **目前为止已经到了这里

lista=[]
thesi=0
def ins(lista_v1):
    for i in range (len(lista_v1)):
        thesi=thesi+1
    if lista_v1[i]>9:
        lista_v1.pop(i)
        lista_v1.insert(thesi,"*")
    for i in range (len(lista_v1_)):
        if lista[i]!="0123456789":
            different=different+1
    print ("{} {} {} {} {} {} {} {} {} {}").format(lista[0],lista[1],lista[2],lista[3],lista[4],lista[5],lista[6],lista[7],lista[8],lista[9])

zero_count=0
one_count=0
two_count=0
three_count=0
four_count=0
five_count=0
six_count=0
seven_count=0
eight_count=0
nine_count=0
different=0
thesi=0

user_data=input()
while user_data!="END" and "end":
    if "0" in user_data==True:
        zero_count=zero_count+1
        lista.append(zero_count)
    else:
        lista.append(0)
    if "1" in user_data==True:
        one_count=one_count+1
        lista.append(one_count)
    else:
        lista.append(0)
    if "2" in user_data==True:
        two_count=two_count+1
        lista.append(two_count)
    else:
        lista.append(0)

    if "3" in user_data==True:
        three_count=three_count+1
        lista.append(three_count)
    else:
            lista.append(0)

    if "4" in user_data==True:
        four_count=four_count+1
        lista.append(four_count)
    else:
            lista.append(0)
    if "5" in user_data==True:
        five_count=five_count+1
        lista.append(five_count)
    else:
            lista.append(0)
    if "6" in user_data==True:
        six_count=six_count+1
        lista.append(six_count)
    else:
            lista.append(0)
    if "7" in user_data==True:
        seven_count=seven_count+1
        lista.append(seven_count)
    else:
            lista.append(0)
    if "8" in user_data==True:
        eight_count=eight_count+1
        lista.append(eight_count)
    else:
            lista.append(0)
    if "9" in user_data==True:
        nine_count=nine_count+1
        lista.append(nine_count)
    else:
            lista.append(0)
    ins(lista)

我现在正在DEF中编辑打印部件。任何建议将不胜感激!我真的很抱歉这个链接。我在使用此编辑器插入python代码时遇到了太多麻烦。我稍后再试。谢谢

1 个答案:

答案 0 :(得分:0)

我有一些评论可能会有所帮助:

我认为最好在程序开始时设置一次lista的大小,而不要使用lista.append()。您从一开始就知道大小是多少:一个数字用于每个0-9,另一个用于其他任何数字,列表中共有11个项目。您还需要将lista中的每个项目“初始化”为零。有两种方法可以做这两种事情,但是一种简单的方法是:

lista = [0,0,0,0,0,0,0,0,0,0,0]

然后,每次代码在输入字符串中找到例如“ 5”时,程序需要将lista中用于计数“ 5”的项加1。您可以使用lista[5]。例如:

lista[5] = lista[5] + 1

或者,您可以成为高级程序员,并使用以下快捷方式:

lista[5] += 1

像这样使用lista意味着您不必使用zero_countone_count等。

我还认为您需要修复此声明:

while user_data!="END" and "end":

在这里,您必须非常清楚并使用计算机期望的格式。我认为这是(用英语),“而user_data不等于“ END”也不等于“ end” ...“

但这不是计算机会理解的方式。当计算机读取“和”时,它会将事物分为在其之前和之后的所有内容。 (“或”也会发生同样的事情。)计算机计算出这些结果后,就会使用“和”将它们组合起来。对于“和”,组合之前的结果和之后的结果都必须为True。

在这种情况下,之前的是user_data != "END"。很好,可以满足您的期望。但是,“ and”之后的只是"end"。计算机将使用Python语言读取该内容并将其翻译为True。

在Python中,关键字True和False具有明显的含义。同样,0(数字零)被转换为False; 1(数字1)转换为True。还有更多:Python通常将完全空的内容(列表等)视为False,将非空的内容视为True。这就是为什么它将“结束”转换为True的原因。这是非空的东西。

就目前而言,我建议您坚持使用像您一样的逻辑语句,但是请记住要使每个零件正确地独立站立。

如果您在评论中提出问题,我会再检查一次。