📜  Python程序的输出|设置 5

📅  最后修改于: 2022-05-13 01:54:29.381000             🧑  作者: Mango

Python程序的输出|设置 5

预测以下程序的输出:

方案一:

Python3
def gfgFunction():
    "Geeksforgeeks is cool website for boosting up technical skills"
    return 1
 
print (gfgFunction.__doc__[17:21])


Python3
class A(object):
    val = 1
 
class B(A):
    pass
 
class C(A):
    pass
 
print (A.val, B.val, C.val)
B.val = 2
print (A.val, B.val, C.val)
A.val = 3
print (A.val, B.val, C.val)


Python3
check1 = ['Learn', 'Quiz', 'Practice', 'Contribute']
check2 = check1
check3 = check1[:]
 
check2[0] = 'Code'
check3[1] = 'Mcq'
 
count = 0
for c in (check1, check2, check3):
    if c[0] == 'Code':
        count += 1
    if c[1] == 'Mcq':
        count += 10
 
print (count)


Python3
def gfg(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)
 
gfg(2)
gfg(3,[3,2,1])
gfg(3)


输出:

cool

说明:通过在函数定义开始后的第一行放置一个字符串,为此方法定义了一个文档字符串。可以使用函数的 __doc__ 属性来引用文档字符串。因此它打印索引字符串。

方案二:

Python3

class A(object):
    val = 1
 
class B(A):
    pass
 
class C(A):
    pass
 
print (A.val, B.val, C.val)
B.val = 2
print (A.val, B.val, C.val)
A.val = 3
print (A.val, B.val, C.val)

输出:

1 1 1
1 2 1
3 2 3

说明:在Python中,类变量在内部作为字典处理。如果在当前类的字典中没有找到变量名,则搜索类层次结构(即其父类),直到找到引用的变量名,如果找不到变量则抛出错误。因此,在上面的程序中,第一次调用 print() 打印了初始化值,即 1。在第二次调用中,因为 B.val 设置为 2,输出为 1 2 1。最后的输出 3 2 3 可能令人惊讶.这里 B.val 反映的是 2 而不是 3,而不是 3 3 3,因为它之前被覆盖了。

方案 3:

Python3

check1 = ['Learn', 'Quiz', 'Practice', 'Contribute']
check2 = check1
check3 = check1[:]
 
check2[0] = 'Code'
check3[1] = 'Mcq'
 
count = 0
for c in (check1, check2, check3):
    if c[0] == 'Code':
        count += 1
    if c[1] == 'Mcq':
        count += 10
 
print (count)

输出:

12

解释:当将 check1 分配给 check2 时,我们创建了对同一列表的第二个引用。对 check2 的更改会影响 check1。当将 check1 中所有元素的切片分配给 check3 时,我们创建了 check1 的完整副本,可以独立修改(即 check3 中的任何更改都不会影响 check1)。因此,在检查 check1 时,“代码”得到匹配并且计数增加到 1,但 Mcq 没有得到匹配,因为它仅在 check3 中可用。现在在这里检查 check2 也匹配“代码”,导致计数值为 2。最后,在检查与 check1 和 check2 分开的 check3 时,只有 Mcq 匹配并且计数变为 12。

程序 4:

Python3

def gfg(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)
 
gfg(2)
gfg(3,[3,2,1])
gfg(3)

输出:

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]