Python小白需掌握的10个知识点
今天和大家分享10个小白必会的Python知识点,虽然不难,但确实需要掌握,下面来看一下吧!
1.如何用 Python 输出一个 100 以内的斐波那契数列(Fibonacci sequence)?
>>> a, b = 0, 1
>>> while b < 100:
print(b, end=' ')
a, b = b, a + b
1 1 2 3 5 8 13 21 34 55 89
2.什么是 lambda 函数?它有什么好处?
lambda
函数是一个可以接收任意多个参数 (包括可选参数) 并且返回单个表达式值的函数。 lambda
函数不能包含命令,它们所包含的表达式不能超过一个。
3.请简述 Python 中 is 和 == 的区别。
Python
中的对象包含三个要素:id
、type
和 value
。is
比较的是两个对象的 id
。==
比较的是两个对象的 value
。
4.请简述 function(*args, **kwargs) 中的 *args, **kwargs 分别是什么意思?
*args
和 **kwargs
主要用于函数定义的参数。Python
语言允许将不定数量的参数传给一个函数,其中 *args
表示一个非键值对的可变参数列表,**kwargs
则表示不定数量的键值对参数列表。注意:*args
和 **kwargs
可以同时在函数的定义中,但是 *args
必须在**kwargs
前面。
5.请简述面向对象中 __new__ 和 __init__ 的区别。
(1) __new__
至少要有一个参数 cls
,代表当前类,此参数在实例化时由 Python
解释器自动识别。
(2) __new__
返回生成的实例,可以返回父类(通过 super
(当前类名, cls
)的方式)__new__
出来的实例, 或者直接是对象的 __new__
出来的实例。这在自己编程实现 __new__
时要特别注意。
(3) __init__
有一个参数 self
,就是这个 __new__
返回的实例, __init__
在 __new__
的基础上可以完成一些其它初始化的动作, __init__
不需要返回值。
(4) 如果 __new__
创建的是当前类的实例,会自动调用 __init__
,通过返回语句里面调用的 __new__
函 数的第一个参数是 cls
来保证是当前类实例,如果是其他类的类名,那么实际创建并返回的就是其他类的实例,也就不会调用当前类或其他类的 __init__
函数。
6.Python 子类继承自多个父类时,如多个父类有同名方法,子类将继承自哪个方法?
Python
语言中子类继承父类的方法是按照继承的父类的先后顺序确定的,例如,子类 A 继承自父类 B、 C,且B、C中具有同名方法 Test()
,那么 A 中的 Test()
方法实际上是继承自B中的 Test()
方法。
7.判断两个字符串是否同构。
字符串同构是指字符串 s 中的所有字符都可以替换为 t 中的所有字符。在保留字符顺序的同时,必须用另 一个字符替换所有出现的字符。不能将 s 中的两个字符映射到 t 中同一个字符,但字符可以映射到自身。 试判定给定的字符串 s 和 t 是否同构。
例如:
s = “paper”
t = “title”
输出 True
s = “add”
t = “apple”
输出 False
>>> s = 'app'
>>> t = 'add'
>>> len(set(s)) == len(set(t)) == len(set(zip(s, t)))
True
8.请写出匹配中国大陆手机号且结尾不是 4 和 7 的正则表达式。
>>> import re
>>> tel = '15674899231'
>>> "有效" if (re.match(r"1\d{9}[0-3,5-6,8-9]", tel) != None) else "无效"
'有效'
9.使用递推式将矩阵 [ [1, 2], [3, 4], [5, 6] ] 转换为一维向量。
>>> a = [[1, 2], [3, 4], [5, 6]]
>>> [j for i in a for j in i]
[1, 2, 3, 4, 5, 6]
10.编写 Python 程序,打印星号金字塔。
编写尽量短的 Python
程序,实现打印星号金字塔。例如 n=5
时输出以下金字塔图形:
*
***
*****
*******
*********
>>> n = 5
>>> for i in range(1, n + 1):
print(' '*(n-(i-1))+'*'*(2*i-1))
*
***
*****
*******
*********
- 点赞
- 收藏
- 关注作者
评论(0)