Python基础的教程实在太多了,建议参考免费教程
学习基础看这个足够了,不在赘述。 这里只是记录一些容易忽视和面试会被问题的问题!
1 基础知识
1、python是动态强类型编程语言
动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。可以在运行时改变变量的类型。Python和Ruby就是一种典型的动态类型语言。
静态类型语言是数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型。不可以在运行时改变变量的类型。C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
Python有明确的类型,不是弱类型语言,变量类型不会自动隐藏转换。
2、变量解包
python里面的特殊赋值操作,允许把一个可迭代对象列表,一次赋值给多个变量
>>> names = ['jerry','tom']
>>> name1, name2 = names
# 注意左边的变量各数必须和待展开的列表长度相等,否则会报错
>>> name1
'jerry'
>>> name2
'tom'
>>>
动态解包支持 *变量名 获取多个对象,如下通过这种方式获取了,中间数据,去除了头和尾。
>>> data = ['11','22','33','44','55','66']
>>> data_first, *data_content, data_end = data
>>> data_first
'11'
>>> data_content
['22', '33', '44', '55']
>>> data_end
'66'
>>>
动态解开包的语法相比切片截取更加的直观和灵活。
3、特殊变量名 单下划线_
在变量中 _ 通常作为一个无意义的占位符出现。是一种约定俗成的用法。解包的时候被经常使用。在交互式的环境里 ,有特殊含义,默认保存上一个变量的返回值
>>> data_end
'66'
>>> print(_)
66
# 接受值,但是一般忽略不使用的
>>> data = ['11','22']
>>> value,_ = data
>>> value
'11'
>>> _
'22'
>>>
4 命名规范PEP8原则
变量命名规范:
1、普通变量,使用下划线方式 ,例如 max_value
2、常量,全部大写字母,例如 MAX_VALUE
3、仅内部使用的变量,下划线前缀,例如,_local_value
4、python关键值冲突的时候,下划线后缀, 例如 class_
5 布尔类型也是数字
python的bool类型,其实是整型的子类型,Ture和False可以当作1和0来使用,进行数字运算。
同时,计算结果返回为 0和非0可以当作if的判断条件。
6 反转一个字符串
>>> s = "Hello , jerry"
>>> ''.join(reversed(s))
'yrrej , olleH'
7 格式化字符串的三种范式
1、C语言风格的格式化, ‘Hello %s’ % ‘world’
2、str.format方式 “Hello, {}”.format('world')
3、f-string方式 name = 'jerry'; print(f'my name is {name}')
8 Python的一些不常用的字符串操作
拼接字符串:python常见的做法是,创建一个空列表,然后把需要的字符串放进列表,最后调用str.join 来获得一个大字符串。
判断字符串是否只包含数字: str.isdigit()
>>> '234'.isdigit()
True
>>> 'dfass23123'.isdigit()
False
字符串分段 :str.partition(sep) ,返回三个成员的元组:(part_before, seq, part_after)
适合key: value 这种形势的分割。 如果字符串没有该分隔符,返回的元组最后一个是空字符串;
用split() 也可以实现字符串分段,但是返回的是有区别的。各有优势。
>>> '123a'.split(':')
['123a']
>>> '123a'.partition(':')
('123a', '', '')
一次替换多个字符 : str.translate(table) ,按照设置的table规则,必多次调用replace方式更简单
>>> content = "AbcdFAAaaF"
>>> table = content.maketrans('AdF', 'aDf')
>>> content.translate(table)
'abcDfaaaaf'