Python:for循环只运行一次,Project Euler

Python: #39;For#39;loop only runs once, Project Euler(Python:for循环只运行一次,Project Euler)
本文介绍了Python:for循环只运行一次,Project Euler的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在学习Python和玩Project Euler,以重新调整我的一些数学技能。我遇到了Problem 35的问题。我已经生成了100万以下的所有素数,剔除了包含任何偶数的素数,现在只是尝试用剩余的~3k素数运行最后一次检查。

此函数应为:

  1. 列出~3k个素数。
  2. 返回由原始列表中每个项目的所有旋转列表组成的新列表。

以下是我对每一行的理解:

def rotations(lst):
    newlist = []
    for i in lst:                                              # Take each int item in list. 
        s = [int(j) for j in str(i)]                           # Turn each item into a list of digit strings
        num = ([s[k:]+s[:-len(s)+k] for k in range(len(s))])   # Generate list of rotations of strings 
        tmplst = [] 
        for l in num:                                          # For each string rotation
            tmplst.append(int(''.join(map(str,l))))            # Turn it into an integer, add that int to tmplst
        newlist.append(tmplst)                                 # Add each tmplist to 'newlist'
    return newlist

输入rotations([123,456])只产生:

[[123, 231, 312]]

当我怀孕时

[[123, 231, 312],[456,564,645]]

有什么可能出错的线索吗?

推荐答案

每当有人有一个代码,而其他人(包括我自己)无法重现其奇怪行为时,我立刻就会想到:空格错误。查看您的代码:

'    def rotations(lst):'
'            newlist = []'
'            for i in lst:                                              # Take each int item in list. '
'            	    s = [int(j) for j in str(i)]                           # Turn each item into a list of digit strings'
'            	    num = ([s[k:]+s[:-len(s)+k] for k in range(len(s))])   # Generate list of rotations of strings '
'            	    tmplst = [] '
'            	    for l in num:                                          # For each string rotation'
"                	        tmplst.append(int(''.join(map(str,l))))            # Turn it into an integer, add that int to tmplst"
"                	    newlist.append(tmplst)                                 # Add each tmplist to 'newlist'"
'                    return newlist'
'        '

在我看来,您可能将制表符和空格混为一谈。这可能会导致非常神秘的行为,因为某些行没有您想象的那么多缩进。使用

运行您的程序
python -tt your_program_name.py

若要确认,请切换到使用四个空格的缩进(我指的是由四个空格组成的"制表符",而不是 。)

这篇关于Python:for循环只运行一次,Project Euler的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)