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. 连接池--sp_reset_connection

    --当客户端使用连接池访问数据库时,客户端使用OPEN来重用数据库连接,使用CLOSE来断开数据库连接,但并不物理上新建和断开连接,因此可以提高程序运行速度并降低性能损耗. --ADO和ADO.NET ...

  2. XML--将XML中数据提取出转换成表2

    DECLARE @xml XMLSET @xml = '<Students>    <Student  id="1001" name = "xu&quo ...

  3. django系列8.4--django中间件的可应用案例, 限制请求次数与时间

    应用案例 1.做IP访问频率限制 某些IP访问服务器的频率过高,进行拦截, 比如每分钟不能超过20次 2.URL访问过滤 如果用户访问的是login视图,就允许请求 如果访问其他视图, 需要检测是不是 ...

  4. 【ocp-12c】最新Oracle OCP-071考试题库(41题)

    41.(8-14) choose two View the Exhibit and examine the structure of the ORDERS table. The columns ORD ...

  5. 哈工大ComingX-创新工场俱乐部正式成立

    当我把这两个Logo放在一起的时候,我有一种感觉,这种感觉同样存在于ComingX队员的心中.大学我们走到了一起,非你我所预料,却又如此自然.在感恩节的零点,我迫不及待地告诉各位ComingX队员和关 ...

  6. 定期删除Azure存储账号下N天之前的数据文件-ARM

    ######RemoveStorageBlob*DaysOld-ARM##### <# .SYNOPSIS Remove all blob contents from one storage a ...

  7. linux之getenv putenv setenv和unsetenv详解

    1.getenv函数 头文件:#include<stdlib.h> 函数原型: char * getenv(const char* name); 函数说明:getenv()用来取得参数na ...

  8. lspci

    lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具. 列出所有的PCIE设备: lspci 选项: -v 使得 lspci 以冗余模式显示所有设备的详细信息. -vv ...

  9. 网络基础 04_IP编址

    1 IP地址简介 什么是IP地址 在IP网络中,任何一个节点都需要一个唯一的IP IPV4 :32位 点分十进制 2 IP编址分类 有类编址 IP地址的类别 IP地址类型 网络地址:指代网络的地址.在 ...

  10. 洛谷P3830 [SHOI2012]随机树(期望dp)

    题面 luogu 题解 第一问: 设\(f[i]\)表示\(i\)步操作后,平均深度期望 \(f[i] = \frac {f[i - 1] * (i - 1)+f[i-1]+2}{i}=f[i-1]+ ...