小编Fiv*_*ive的帖子

为什么我的范围函数的输出不是列表?

根据Python文档,当我执行范围(0,10)时,此函数的输出是0到9的列表,即[0,1,2,3,4,5,6,7,8,9].然而,尽管有很多这样的在线工作示例,但我的PC上的Python安装并没有输出.

这是我的测试代码......

test_range_function = range(0, 10)
print(test_range_function)
print(type(test_range_function))
Run Code Online (Sandbox Code Playgroud)

我想的输出应该是打印的列表,类型函数应该将其作为列表输出.相反,我得到以下输出...

c:\Programming>python range.py
range(0, 10)
<class 'range'>
Run Code Online (Sandbox Code Playgroud)

我没有在网上的任何一个例子中看到这一点,并且非常欣赏这方面的一些亮点.

python python-3.x

6
推荐指数
2
解决办法
5269
查看次数

在if语句条件中使用"或"

我确信这有一个非常简单的答案,但在搜索了一段时间后我找不到它.

prefixes = "JKLMNOPQ"
suffix = "ack"

for letter in prefixes:
    if letter == "Q" or letter == "O":
        print letter + "u" + suffix
    else:
        print letter + suffix
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好,if语句的条件似乎有点啰嗦,所以我试过:

if letter == "Q" or "O":
Run Code Online (Sandbox Code Playgroud)

这是较短但不起作用.我发现它不起作用,因为"O"是一个布尔表达式,它总是为True,并且它不考虑"或"左侧的任何内容.

我尝试将括号括在它周围:

if letter == ("Q" or "O"):
Run Code Online (Sandbox Code Playgroud)

但那只匹配Q而不是O.

有没有简单的方法让代码工作,或者我必须使用对我有用的冗长方式?

python

5
推荐指数
2
解决办法
220
查看次数

删除引用/别名后,函数中的传递参数/参数仍在更改

我花了最后2个小时来讨论这个问题,我可能已经阅读了有关传递给函数的变量的所有问题.我的问题是参数/参数的常见问题是受到函数内部所做更改的影响,即使我已经通过variable_cloned = variable[:]在函数中使用来删除引用/别名来复制内容而没有引用.

这是代码:

def add_column(m):    
    #this should "clone" m without passing any reference on    
    m_cloned = m[:]
    for index, element in enumerate(m_cloned):
        # parameter m can be seen changing along with m_cloned even
        # though 'm' is not touched during this function except to 
        # pass it's contents onto 'm_cloned'        
        print "This is parameter 'm' during the for loop...", m
        m_cloned[index] += [0]
    print "This is parameter 'm' at end of for loop...", m    
    print "This is …
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
86
查看次数

标签 统计

python ×3

python-3.x ×1