2024年网安最全100 个基本的 Python 面试问题第一部分(1-20)_gurobi面试

本文汇总了20个基础的Python面试问题,涵盖Python语法、内置类型、内存管理、错误处理等方面。例如,讨论了Python中`pass`语句的作用,`~`获取主目录的方法,以及Python列表、元组的区别。同时,文章还介绍了如何使用`re`模块验证电子邮件ID,以及Python中没有switch/case语句的原因。对于自学网络安全的读者,提供了黑客入门学习路线及规划。
摘要由CSDN通过智能技术生成

回到目录


Q-2:以下 Python 代码片段的输出是什么?证明你的答案。

def extendList(val, list=[]):
    list.append(val)
    return list

list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')

print "list1 = %s" % list1
print "list2 = %s" % list2
print "list3 = %s" % list3

上述 Python 代码片段的结果是:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

你可能错误地认为 list1 等于 [10] 并且 list3 与 [‘a’] 匹配,认为每次调用 extendList 时,list 参数都会初始化为其默认值 []。

但是,流程就像在定义函数后创建一个新列表一样。每当有人在没有列表参数的情况下调用 extendList 方法时,都会使用相同的方法。它是这样工作的,因为表达式的计算(在默认参数中)发生在函数定义时,而不是在调用期间。

因此, list1 和 list3 在同一个默认列表上运行,而 list2 在它自己创建的单独对象上运行(通过传递一个空列表作为 list 参数的值)。

可以通过以下方式更改 extendList 函数的定义。

def extendList(val, list=None):
  if list is None:
    list = []
  list.append(val)
  return list

有了这个修订后的实施,输出将是:

list1 = [10]
list2 = [123]
list3 = ['a']

回到目录


Q-3:若程序不需要动作但语法需要,则可在 Python 中使用的语句是什么?

pass 语句是一个空操作。执行时什么也没有发生。你应该使用小写的“pass”关键字。如果你写“Pass”,你会遇到类似“NameError: name Pass is not defined”这样的错误。Python 语句区分大小写。

letter = "hai sethuraman"
for i in letter:
    if i == "a":
        pass
        print("pass statement is execute ..............")
    else:
        print(i)

回到目录


Q-4:在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值