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='';type(i)
Out[6]: str

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

In [7]: 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')
...:

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

  1. [PY3]——内置数据结构(6)——集合及其常用操作

    集合及其常用操作Xmind图          集合的定义 # set( ) # {0,1,2} //注意不能用空的大括号来定义集合 # set(可迭代对象) In [1]: s=set();type ...

  2. python简介

    python起源 作者Guido van Rossum,荷兰人 在创建python之初,1989年12月份,Guido只是想用编程来打发圣诞的闲暇时光.Guido也希望能有一门语言既能够像C语言那样, ...

  3. [py]编码-强力理解版

    py编码骨灰级总结 思路: python执行py文件步骤--py2/3定义变量时unicode差异 1,py2 py3执行py文件的步骤 2,py2 定义变量x='mao' 1.x='mao', # ...

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

    一  环境搭建 安装python(建议使用py3) py2和py3在语法上会有一定的差别 第三方插件逐步转向py3,很多py2的插件已经停止维护 本教程的所有代码基于py3 安装selenium插件 ...

  5. python全栈测试之路-py3基础:基础的常用语法知识

    python基础链接 python3速查参考- python基础 2 -> if语句应用 + while循环应用 https://www.cnblogs.com/wuzhiming/p/7795 ...

  6. 语法注释格式;格式化输出;input在py2和py3中的区别;数据的基本类型;运算符;

    一.Python中的注释 Python的注释是代码的评论,是让代码让人能更加清晰明确.代码的注释可分为单行注释和多行注释,单行注释用“#”,多行注释用三对单引号或者三对双引号来表示. ps:# 单行注 ...

  7. python py2与py3的编码问题

    一:什么是编码 将明文转换为计算机可以识别的编码文本称为"编码".反之从计算机可识别的编码文本转回为明文为"解码". 那么什么是明文呢,首先我们从一段信息说起, ...

  8. python8--文件操作 with。。。open语法

    复习   一.类型转换 1.数字类型:int() | bool() | float()  2.str与int:int('10') | int('-10') | int('0') | float('-. ...

  9. 一文读懂ES6(附PY3对比)

      Ⅰ.ES6~POP¶ 代码示例:https://github.com/lotapp/BaseCode/tree/master/javascript/1.ES6 在线演示:https://githu ...

随机推荐

  1. [UWP开发]处理手机后退事件

    众所周知,uwp程序是一套代码,可以run在不同的平台上.但是不同的设备肯定有其独特之处,所以针对这些独特之处,必须用“独特的代码”来处理. 所以微软提供了一系列的拓展类库来实现这种特殊处理. 如上图 ...

  2. 30个你 “ 不可能全部会做 ” 的javascript题目-答案解释

    题目链接:http://www.cnblogs.com/0603ljx/p/4458127.html 1,D map对数组的每个元素调用定义的回调函数并返回包含结果的数组.["1" ...

  3. iOS 需要了解的

    1. 用 CocoaPods 来管理应用用到的第三方库. 2. Jenkins 3. Robotium 4. RESS

  4. C#上传文件处理

    public class FileHelp : System.Web.UI.Page { /// <summary> /// 保存文件 /// 返回:数组:status[0]:文件名称:s ...

  5. “全栈2019”Java第一百章:局部内部类可以实现接口吗?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. How to write date range query in Nest ElasticSearch client?

    Looking at the source code, there are two overloads of the OnField method. When I use the the that t ...

  7. jmeter我们必须搞清楚的问题

    我们从以下几个点来看jmeter: 1.jmeter是什么? 2.jmeter为什么我们要使用jmeter?他可以帮我们解决那些事情? 3.怎样使用jmeter做这些事情? 4.我们在什么时候会使用j ...

  8. SpringMVC中重定向传参数的方法

    在spring的一个controller中要把参数传到页面,只要配置视图解析器,把参数添加到Model中,在页面用el表达式就可以取到.但是,这样使用的是forward方式,浏览器的地址栏是不变的,如 ...

  9. SHELL脚本扩展

    使用SED命令 sed称为流编辑器,命令格式如下: sed option script file -e script #指定多个命令 -f script_file #指定命令文件 -n #不需要为每个 ...

  10. mongodb 两台互为主从

    主机A [root@mysql_master zhxf]# cat docker-compose.yml version: '3' services: mongo_rs1: image: mongo: ...