Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环数指数;枚举()_Python_Loops_Enumerate - Fatal编程技术网

Python 循环数指数;枚举()

Python 循环数指数;枚举(),python,loops,enumerate,Python,Loops,Enumerate,我正在完成python书中的练习,我正在努力完成 开始的时候,我应该列一个由10个数字和5个字母组成的列表。随机选择4个元素并打印有关中奖彩票的消息 然后我想做一个循环,看看我刚刚创造的彩票中奖有多难。我需要做一个名为my_ticket的列表,然后写一个循环,不断地拉数字,直到票赢。打印一条消息,报告环路必须tun多少次才能给出中奖彩票 我唯一需要做的就是计算代码在循环中集成了多少次。我知道我需要使用enumerate,但我不确定如何将其应用于我的代码。enumerate函数获取一个列表,并从列

我正在完成python书中的练习,我正在努力完成

开始的时候,我应该列一个由10个数字和5个字母组成的列表。随机选择4个元素并打印有关中奖彩票的消息

然后我想做一个循环,看看我刚刚创造的彩票中奖有多难。我需要做一个名为my_ticket的列表,然后写一个循环,不断地拉数字,直到票赢。打印一条消息,报告环路必须tun多少次才能给出中奖彩票

我唯一需要做的就是计算代码在循环中集成了多少次。我知道我需要使用enumerate,但我不确定如何将其应用于我的代码。

enumerate函数获取一个列表,并从列表中的所有元素(如[0,elem1,1,elem2,…])生成元组

因此,您可以使用它来计算循环按如下方式运行的次数:

对于索引,枚举计数中的i:无限循环 对于1,5范围内的i:数字和字母列表中的四个元素 i=精选编号和字母 赢的数字 印刷数字 如果您正在查看您的号码!=已分拣车票: 中奖号码,明白了吗 elif SortedMining_编号==sortedmy_票证: 打印“数字相同” 打印“运行了%d次!”%索引+1 打破 索引+1,因为索引以0开头。

枚举函数获取一个列表,并从列表中的所有元素生成元组,如[0,elem1,1,elem2,…]

因此,您可以使用它来计算循环按如下方式运行的次数:

对于索引,枚举计数中的i:无限循环 对于1,5范围内的i:数字和字母列表中的四个元素 i=精选编号和字母 赢的数字 印刷数字 如果您正在查看您的号码!=已分拣车票: 中奖号码,明白了吗 elif SortedMining_编号==sortedmy_票证: 打印“数字相同” 打印“运行了%d次!”%索引+1 打破
索引+1,因为索引以0开头。

您可以使用临时计数器cnt跟踪循环从列表中提取元素的次数,并将其与票证匹配 首先在循环外用0初始化它


然后,每次循环运行时增加cnt,如果找到匹配的printcnt,然后再次将cnt设置为0in if,以便下一次迭代

您可以使用临时计数器cnt跟踪循环从列表中提取元素的次数,并将其与票证匹配 首先在循环外用0初始化它


然后,每次循环运行时,如果找到匹配项,则增加cnt printcnt,然后再次将cnt设置为0,如果用于下一次迭代,则无需使用enumerate伯爵很好

下面是对代码的一个轻微修改,使其能够工作:

from random import choice
from itertools import count

numbers_and_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                       '1', '2', '3', '4', '5']
winning_numbers = []
my_ticket = ['a','1', '5', 'j']

def get_random_ticket():
    res = []
    for i in range(4):   # four elements from the numbers_and_letters list
        i = choice(numbers_and_letters)
        res.append(i)
    return res

winning_numbers = get_random_ticket()
print(winning_numbers)

for i in count():   #infinite loop
    if sorted(winning_numbers) == sorted(get_random_ticket()):
        print('The numbers are identical')
        print(i) 
        break

不需要使用枚举。”伯爵很好

下面是对代码的一个轻微修改,使其能够工作:

from random import choice
from itertools import count

numbers_and_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                       '1', '2', '3', '4', '5']
winning_numbers = []
my_ticket = ['a','1', '5', 'j']

def get_random_ticket():
    res = []
    for i in range(4):   # four elements from the numbers_and_letters list
        i = choice(numbers_and_letters)
        res.append(i)
    return res

winning_numbers = get_random_ticket()
print(winning_numbers)

for i in count():   #infinite loop
    if sorted(winning_numbers) == sorted(get_random_ticket()):
        print('The numbers are identical')
        print(i) 
        break

您已经在计算找到与循环匹配所需的迭代次数。但是您稍后将用其他值覆盖从该循环中获得的值,因为您将多次重用变量名i

尝试为这三行中的变量使用不同的名称,而不是重复使用i:


现在,您可以稍后使用draw_count。您可能希望打印出draw_count+1,因为itertools.count迭代器在默认情况下从零开始。

您已经在计算迭代次数,您要找到与循环计数匹配的迭代次数。但是您稍后将用其他值覆盖从该循环中获得的值,因为您将多次重用变量名i

尝试为这三行中的变量使用不同的名称,而不是重复使用i:


现在,您可以稍后使用draw_count。您可能希望打印出draw_count+1,因为itertools.count迭代器默认从零开始。

要计算代码通过循环集成的次数,只需添加一个计数器

from random import choice
from itertools import count

numbers_and_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                       '1', '2', '3', '4', '5']
winning_numbers = []
my_ticket = ['a','1', '5', 'j']

a = 0
for i in count():   #infinite loop
    for i in range(1, 5):   # four elements from the numbers_and_letters list
        i = choice(numbers_and_letters)
        winning_numbers.append(i)
    print(winning_numbers)
    a += 1
    if sorted(winning_numbers) != sorted(my_ticket):
        winning_numbers.clear()
    elif sorted(winning_numbers) == sorted(my_ticket):
        print('The numbers are identical')
        print(a)
        break    
这是输出点,表示有多个打印的中奖号码-

......
......
......
......
['4', 'd', 'h', '3']
['h', 'd', 'h', 'j']
['5', 'd', '5', 'c']
['1', '5', 'j', 'a']
The numbers are identical
2852

要计算代码通过循环集成的次数,只需添加一个计数器

from random import choice
from itertools import count

numbers_and_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                       '1', '2', '3', '4', '5']
winning_numbers = []
my_ticket = ['a','1', '5', 'j']

a = 0
for i in count():   #infinite loop
    for i in range(1, 5):   # four elements from the numbers_and_letters list
        i = choice(numbers_and_letters)
        winning_numbers.append(i)
    print(winning_numbers)
    a += 1
    if sorted(winning_numbers) != sorted(my_ticket):
        winning_numbers.clear()
    elif sorted(winning_numbers) == sorted(my_ticket):
        print('The numbers are identical')
        print(a)
        break    
这是输出点,表示有多个打印的中奖号码-

......
......
......
......
['4', 'd', 'h', '3']
['h', 'd', 'h', 'j']
['5', 'd', '5', 'c']
['1', '5', 'j', 'a']
The numbers are identical
2852

非常感谢你的帮助。我真的很感激。您能告诉我如何打印“需要%d次运行!”%索引+1工作?它使用字符串格式。因此,变量被放入字符串中。变量由百分号表示,可以是int%d、float%f等。在字符串之后,将要打印的变量放在%d处。您还可以使用“它花费了{}次运行!”。formatindex+1。有关Python中字符串格式的详细信息:。非常感谢您的帮助。我真的很感激。可以吗
请告诉我如何打印“需要%d次运行!”%索引+1工作?它使用字符串格式。因此,变量被放入字符串中。变量由百分号表示,可以是int%d、float%f等。在字符串之后,将要打印的变量放在%d处。您还可以使用“它花费了{}次运行!”。formatindex+1。关于Python中字符串格式的更多信息:。谢谢,我认为这是最简单的一个!谢谢你,我认为这是最简单的!