67、列出几种魔法方法并简要介绍用途

__init__:对象初始化方法

__new__:创建对象时候执行的方法,单列模式会用到

__str__:当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据

__del__:删除对象执行的方法

 

68、终端执行 python 1.py 22 33 命令行启动程序并传参,1.py中的print(sys.argv)会输出什么数据?

PyTorch面试常见问题_迭代

 

69、请将[i for i in range(3)]改成生成器

1、列表表达式的 [ ]改为 ( ) 即可变成生成器

2、函数中候出现yield就变成生成器

PyTorch面试常见问题_python_02

 

70、a = "  hehheh  ",去除尾部空格

PyTorch面试常见问题_PyTorch面试常见问题_03

 

71、举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]

sorted() 函数对所有可迭代的对象进行排序操作。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

语法

sorted 语法:


sorted(iterable, key=None, reverse=False)


参数说明:

  • iterable -- 可迭代对象。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

PyTorch面试常见问题_SQL_04

 

72、对foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序

PyTorch面试常见问题_python_05

 

 

73、使用lambda函数对foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4]排序,输出结果为[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小

PyTorch面试常见问题_生成器_06

 

74、列表嵌套字典的排序,分别根据年龄和姓名排序

foo = [{"name":"zs","age":19},{"name":"ll","age":54},

        {"name":"wa","age":17},{"name":"df","age":23}]

PyTorch面试常见问题_生成器_07

 

75、列表嵌套元组,分别按字母和数字排序

PyTorch面试常见问题_迭代_08

 

76、列表嵌套列表排序,年龄数字相同怎么办?

PyTorch面试常见问题_迭代_09

 

77、根据键对字典排序(方法一,zip函数)

PyTorch面试常见问题_python_10

 

78、根据键对字典排序(方法二,不用zip)

dic.items和zip(dic.keys(),dic.values())都是为了构造列表嵌套字典的结构,方便后面用sorted()构造排序规则

PyTorch面试常见问题_SQL_11

 

79、列表推导式、字典推导式、生成器

PyTorch面试常见问题_迭代_12

 

80、最后出一道检验题目,根据字符串长度排序,看排序是否灵活运用

PyTorch面试常见问题_生成器_13

 

81、举例说明SQL注入和解决办法

当以字符串格式化书写方式的时候,如果用户输入的有;+SQL语句,后面的SQL语句会执行,比如例子中的SQL注入会删除数据库demo

PyTorch面试常见问题_迭代_14

解决方式:通过传参数方式解决SQL注入

PyTorch面试常见问题_PyTorch面试常见问题_15

 

82、s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong']

|表示或,根据冒号或者空格切分

PyTorch面试常见问题_迭代_16

 

83、正则匹配以163.com结尾的邮箱

PyTorch面试常见问题_python_17

 

84、递归求和

PyTorch面试常见问题_SQL_18

 

85、python字典和json字符串相互转化方法

json.dumps()字典转json字符串,'

json.loads() json转字典

PyTorch面试常见问题_python_19

 

86、MyISAM 与 InnoDB 区别:

1、InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了;

2、MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;

3、InnoDB 支持外键,MyISAM 不支持;

4、对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM表中可以和其他字段一起建立联合索引;

5、清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表;

 

87、统计字符串中某字符出现次数

PyTorch面试常见问题_python_20

 

88、字符串转化大小写

PyTorch面试常见问题_生成器_21