[PY3]——基本语法

Python3基本语法-xmind图



常量/变量
1.常量:一旦赋值就不可再改变。不能对它重新赋值。python不存在常量
2.字面常量:一个单独出现的量,未赋值给任何变量或常量
3.变量:

i=3
print(i)
3


类型系统
1.python是动态类型语言:指的是变量可以重新赋值为其他类型

In [5]: i=4;type(i)
Out[5]: int
In [6]: i=‘4‘;type(i)
Out[6]: str

2.python是强类型语言:强类型指的是不同类型之间不能相互计算

In [7]: 4+‘4‘
TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘

3.python中一切都是引用,所以一切都是指针

4.python的基本类型:
(1)int整型:python里面可以说int型没有溢出,而只受限于物理内存

In [8]: i=1000000000000000000000000000000000000000000000000000000000000000000000
   ...: 000000000000000000000000000000000000000000000000000000000000000000000000
In [9]: type(i)
Out[9]: int
In [10]: i**2
Out[10]: 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

(2)float浮点型:(py3里面没有double类型),浮点型会损失精度

In [11]: type(1.0)
Out[11]: float
In [12]: type(3.14159)
Out[12]: float

(3)bool布尔型:True Flase
(4)none:None指的是没有指向任何内存



运算符
1.算术运算符:

# 算术运算符只能对int和float运算,int会隐式转换成float
# +  加
    In [5]: 1+1.0
    Out[5]: 2.0

# -  减
    In [6]: 1-2
    Out[6]: -1

# *  乘
    In [11]: 2*3
    Out[11]: 6

# /  自然除(结果都是float型)
    In [1]: 3/2
    Out[1]: 1.5
    In [2]: type(3/2)
    Out[2]: float

# // 取整除(结果取整故都是int型)
    In [3]: 3//2
    Out[3]: 1
    In [4]: type(3//2)
    Out[4]: int

# ** 求幂
    In [12]: 2**3
    Out[12]: 8

# %  取模
    In [19]: 4%3
    Out[19]: 1

2. 比较运算符

# 比较运算返回值都是bool型
#    >   大于
#    <   小于
#    == 等于
#    !=  不等于
#    >= 大于等于
#    <= 小于等于
In [20]: type(1>2)
Out[20]: bool

In [21]: 1>2
Out[21]: False

In [22]: 1<2
Out[22]: True

In [23]: 1!=2
Out[23]: True

3. 逻辑运算符

# or  或
# and 且
# not 非
# 逻辑运算符的操作数与返回值都是bool类型
In [24]: True or False
Out[24]: True

In [25]: True and False
Out[25]: False

In [26]: not True
Out[26]: False

In [27]: type(True or False)
Out[27]: bool

# 所有参与逻辑运算的操作数都会隐式转换成bool类型,其中0和None会隐式转换为False、非0则隐式转换为True
In [31]: 0 or 1  //0=Flase or 1=True
Out[31]: 1       //非0=True

# 逻辑运算的短路操作:从左到右执行,当左边的计算已经可以直接得出结果时,将停止计算,提前返回
In [32]: def true():
             print(‘True‘)
             return True
In [34]: def false():
             print(‘False‘)
             return False

In [35]: true() or false()
True                           //or运算时左边为true已可以得到结果,故只执行了true()
Out[35]: True

In [36]: false() and true()
False                         //and运算时左边为false已可以得到结果,故只执行了false()
Out[36]: False

In [37]: false() or true()   //左边还不能得到结果的时候,true()和false()都执行了
False
True
Out[37]: True

4. 成员运算符

#用于判断一个元素是否在容器中(和集合类型有关)
# in       在
# not in 不在
In [43]: 3 in [1,2,3,5]
Out[43]: True

In [46]: ‘a‘ not in ‘love python‘
Out[46]: True

In [47]: 10 in (0,2,8,11)
Out[47]: False

In [44]: 10 in {0,2,8,11}
Out[44]: False

# 集合的成员运算远高于其他线性结构做成员运算

# 列子1:
In [49]: lst=list(range(1000000));
In [50]: s=set(range(1000000));

In [51]: %%timeit
    ...: -1 in lst
100 loops, best of 3: 13.1 ms per loop

In [52]: %%timeit
    ...: -1 in s
The slowest run took 28.53 times longer than the fastest. This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 44.6 ns per loop

#例子2:
In [53]: lst2=list(range(100))
In [54]: s2=set(range(100))

In [55]: %%timeit
    ...: -1 in lst2
1000000 loops, best of 3: 1.36 us per loop

In [56]: %%timeit
    ...: -1 in s2
The slowest run took 26.28 times longer than the fastest. This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 46.3 ns per loop

# 通过下面的例子我们可以得到如下结论:
# 做成员运算时,
#   *集合的时间复杂度是O(1),其效率和集合的规模无关 ==>当规模大时我们转化为集合来做运算效率会高很多
#   *线性结构的复杂度是O(n),其效率和列表的规模有关 ==>当规模小时其实线性结构的效率未必不会更好

5. 身份运算符

# 面向对象

6. 位运算符

# 位运算符是直接操作二进制的
# <<
# >>
# &
# |
# ^

7. 赋值运算符

# 赋值运算符是可以和算术运算符、比较运算符、位运算符一起使用
In [12]: a=1+2;print(a);type(a)
3
int

In [13]: a=1>2;print(a);type(a)
False
bool

In [14]: a=True or False;print(a);type(a)
True
bool

8. 运算符优先级
    算术运算符>比较运算符>逻辑运算符
    可以通过使用括号来改变优先级



程序结构

1. 顺序结构

2. 分支结构

(1)单分支                                                                                              (2)双分支

                            

(3)多分支

# 单分支    开始    if 条件:           操作    结束
In [1]: a=5
In [2]: if a<10:
           print(‘a less then 10‘)

# 双分支双分支结构里,永远只有一个分支会被执行    开始    if 条件:           操作1    else:           操作2    结束
In [3]: a=5
In [4]: if a<10:
            print(a,‘less then 10‘)
        else:
            print(a,‘great then 10‘)

# 多分支多分支结构里,永远只有0个或1个分支会执行条件只能是bool类型或者是可以隐式转化为bool类型的
In [5]: a=50
In [6]: if a<10:
            print(‘a<10‘)
        elif a<20:
            print(‘a<20‘)
        elif a<30:
            print(‘a<30‘)
        else
           print(‘a>30‘)

3. 循环

(1)while循环                                                            (2)for in循环

                      

# 一定要有某种机制修改调制使其退出循环,通常是在循环体里修改条件
# for in 循环里永远不要修改可迭代对象()# 如何选择使用哪种循环?   对已知的可迭代对象做遍历,选择for in   对未知的条件做循环,选择while
# while循环    开始    while 条件:              操作    结束
In [18]: i=0
In [19]: while i<10:
             print(i)
             i+=2
0
2
4
6
8

# for in循环    开始    for 元素 in 可迭代对象:            操作    结束
In [62]: for i in range(0,10,2):
             print(i)

0
2
4
6
8

4. 提前终止与跳过

# break 和 continue只针对最近的一层
# break和continue只能用在循环里

# break
In [66]: for i in range(0,3):
    ...:     for j in range(0,5):
    ...:         if j>2:
    ...:             break
    ...:         print(‘i={},j={}‘.format(i,j))
    ...:
i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
i=1,j=2
i=2,j=0
i=2,j=1
i=2,j=2

# continue
In [67]: for i in range(0,3):
    ...:     for j in range(0,5):
    ...:         if j!=2:
    ...:             continue
    ...:         print(‘i={},j={}‘.format(i,j))
    ...:
i=0,j=2
i=1,j=2
i=2,j=2

5. else子句(python中else可以和循环语句一起使用)

# 当循环没有被break(被中断/提前退出)时,会执行else子句
In [68]: for i in range(0,5):
    ...:     pass
    ...: else:
    ...:     print(‘not exit‘)
    ...:
not exit

In [69]: for i in range(0,5):
    ...:     continue
    ...: else:
    ...:     print(‘not exit‘)
    ...:
not exit

In [70]: for i in range(0,5):
    ...:     break
    ...: else:
    ...:     print(‘not exit‘)
    ...:
时间: 2024-08-13 15:06:19

[PY3]——基本语法的相关文章

selenium自动化(一).........................................搭建环境

一  环境搭建 安装python(建议使用py3) py2和py3在语法上会有一定的差别 第三方插件逐步转向py3,很多py2的插件已经停止维护 本教程的所有代码基于py3 安装selenium插件 使用pip安装 Selenium插件也分版本,2/3两个版本几乎没有差别,需要注意的是,se3与firefox使用的时候需要另外下载驱动.firefox的版本要为较新的版本 安装IDE.建议使用pycharm(重量级IDE),也可以使用Sublime(轻量级) 重量级的IDE会检查语法问题.推荐使用

01编程语言与Python介绍(全为重点)

01编程语言与Python介绍(全为重点) 1.编程语言分类 1.1 机器语言 直接用二进制指令去编写程序(例:01010101) 执行效率:计算机无障碍理解,直接运行,执行效率最高. 开发效率:复杂,开发效率最低. 跨平台性:贴近.依赖具体的硬件,跨平台性差. 1.2 汇编语言 用英文标签取代二进制指令去执行,英文标签后面代指的是二进制指令.(拓展:操作系统是用汇编语言写的.) 执行效率:执行效率比较高 开发效率:任然是直接操作硬件,开发效率低. 跨平台性:同样依赖具体的硬件,跨平台性差. 1

py3学习笔记0(入坑)

什么是Python? Python是一种面向对象.解释型计算机程序设计语言,语法简洁,具有很多强大的库.它也被称为胶水语言,能够把其他语言制作的库轻松地粘合在一起.现常用于科学计算,界面设计,网络通信等. 它优雅,明确,简单,将“用一种方法,最好是只有一种方法来做一件事”的优雅哲学贯穿始终. 当然关键还是它比较好玩,就抱着玩一玩的心态入坑看看咯. 初期学的是py2,主要写写小游戏,爬虫什么的. 在学校很久没有编程了,平时还是要写写代码练练手. 那就开始学py3吧!虽然都差不多,但周围有好多人都想

Python第一周 基础语法和概念

执行Python命令的两种方式 1. 交互式模式下执行 安装好了Python程序以后,在windows的命令行或linux.mac的终端界面输入python命令即可进入python的交互模式,在这个模式里输入python语句,按回车即可返回执行结果.一般用于调试. 2. 脚本执行 在.py文件中写好python语句,然后使用python script.py这样的格式来执行python脚本,或者在linux平台上给脚本添加可执行权限,使用绝对路径或相对路径的方式来执行脚本. Python程序的执行

Python学习系列(四)Python 入门语法规则2

Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, utf8解码成Unicode,再将unicode编码成gbk 对于py3.5 如果utf8>gbk, utf8 直接编码成gbk(中间那一步直接被优化了) 3.很多时候,这个可以直接跳过,只有当编码出下问题的时候,再考虑这个知识点 二.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算

unit 1.基础语法

本章内容 1.python大致思维导图构想   2.安装环境   3.基础语法 Python大致思维导图构想 该学习之路的旅程,大体将会参照Alex老师的Python自动化全栈开发的视频的路线走.正如我前言所讲,我开始编写自己的博客是受Alex的启发.但是我可能不会完全按照视频的天数来编写博客,因为我写博客要的不仅是学后的知识整理,还希望能够帮我复盘,快速回忆知识点.因为IT行业要不断的更新,但是总不能不能捡一个扔一个吧.我也是刚刚开始,如果你也刚开始或则发现我说的你也认同,那么让我们一起探寻一

python语法检查工具

在终端写python脚本的时候,经常在写完脚本运行的时候,才发现错误.如果某些代码没有运行到,则其中的错误不会被检查出来.这是因为python是一门动态解释型语言.这与用gcc编译C等静态语言时可以发现全局的语法问题有所不同. 为了避免潜在的语法问题.我们在写完python脚本文件之后,最好给python脚本做个静态语法检查,以此来避免低级错误. 检查工具有pyflakes, pylint, pep8, flake8等.这里用pyflakes做一下简单的检查. 安装方法: https://pyp

python进阶之内置函数和语法糖触发魔法方法

前言 前面已经总结了关键字.运算符与魔法方法的对应关系,下面总结python内置函数对应的魔法方法. 魔法方法 数学计算 abs(args):返回绝对值,调用__abs__; round(args):返回四舍五入的值,调用__round__; math.floor():向下取整,调用__floor__; math.ceil():向上取整,调用__ceil__; math.trunc():求一个值距离0最近的整数,调用__trunc__; divmod(a,b):返回商和余,调用__divmod_

py2和py3之间的不同

1.print函数 很琐碎,而 print 语法的变化可能是最广为人知的了,但是仍值得一提的是: Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中的对象.Python 2 不具有额外的小括号问题.但对比一下,如果我们按照 Python 2 的方式不使用小括号调用 print 函数,Python 3 将抛出一个语法异常(SyntaxError). 2.整除 如果你正在移植代码,这个变化是特别危险的.或者你在 Python 2 上执行