1 Python学习记录-基础

发布于:2022-12-07 ⋅ 阅读:(291) ⋅ 点赞:(0)

Python基础的教程实在太多了,建议参考免费教程

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'


网站公告

今日签到

点亮在社区的每一天
去签到