在我大学学习期间,我被要求**创建一个程序,该程序从字符串以及其他字符(未定义[可能全部])中计算数字(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代码时遇到了太多麻烦。我稍后再试。谢谢
答案 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_count
,one_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的原因。这是非空的东西。
就目前而言,我建议您坚持使用像您一样的逻辑语句,但是请记住要使每个零件正确地独立站立。
如果您在评论中提出问题,我会再检查一次。