抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

[toc]

基础语法

常量/变量

  • 字面常量
  • 变量
    变量一个指针,它指向一块内存;
v = 1

这样就定义了v这个变量

v2 = v
  • 变量的命名规则
    1 只能包含字母、数字和下划线
    2 只能以字母或者下划线开头
    3 不能是Python解释器的保留字
  • 不能以类似 for if in 来做变量名,加个后缀也可以使用。但不建议这样使用;

运算符跟表达式

  • 算术符
    1 算术运算符
    2 逻辑运算符
    3 比较运算符
    4 其它运算符 (赋值、成员运算符、身份运算符)

  • 算术运算符
    1 算术运算符通常只针对数值类型
    1+1 3 5 3/5 3//5 5%3 2*4

  • 比较运算符
    1 == 相等
    2 != 不等于
    3 > 大于
    4 >= 大于等于
    5 < 小于
    6 <= 小于等于

比较运算,最好是让他的类型是相同的
除了 == 和 !=最好类型相同

float (3)/5 # python2
  • 逻辑运算符 (参与运算的成员只能是bool类型,或者可以隐式转化为bool为类型的类型)
    True False
In [1]: True and True
Out[1]: True
# and 需要运算符两边都是True结果才为True
In [2]: True or False
Out[2]: True
# or 只要运算符两边任意一个为True,结果就是True
In [3]: not True
Out[3]: False
# not 类似短路的
In [4]: def add(x,y):
   ...:     print("{0} + {1}".format(x,y))
   ...:     return x + y
   ...: 

In [5]: 

In [5]: add(1,3)
1 + 3
Out[5]: 4

In [6]: add(1,3) > add(1,2) and add(2,4) < add(3,4)
1 + 3
1 + 2
2 + 4
3 + 4
Out[6]: True

In [7]: add(1,3) < add(1,2) and add(2,4) < add(3,4)
1 + 3
1 + 2
Out[7]: False
# 总是从左到右的计算,一旦能够斛决定表达式的最终的值,将立刻停止计算
In [8]: add(1,3) > add(1,2) or add(2,4) < add(3,4)
1 + 3
1 + 2
Out[8]: True

In [9]: add(1,3) < add(1,2) or add(2,4) < add(3,4)
1 + 3
1 + 2
2 + 4
3 + 4
Out[9]: True
In [10]: left =  add(1,3) < add(1,2)
1 + 3
1 + 2

In [11]: right  = add(2,4) < add(3,4)
2 + 4
3 + 4

In [12]: left or right
Out[12]: True
  • 位运算符
In [12]: bin(60)
Out[12]: '0b111100'

In [13]: bin(12)
Out[13]: '0b1100'
In [14]: 60 & 12
Out[14]: 12
# 0011 1100
# 0000 1100
# 0000 1100
In [15]: 60 | 12
Out[15]: 60
# 0011 1100
# 0000 1100
# 0011 1100
In [16]: 60 ^ 12
Out[16]: 48
# 0011 1100
# 0000 1100
# 0011 0000
In [18]: int('0b110000',2)
Out[18]: 48
In [19]: ~60
Out[19]: -61
In [20]: 60 >>2 
Out[20]: 15

In [21]: 60 <<2
Out[21]: 240
In [22]: a = 1

In [23]: a
Out[23]: 1
# 左边是一个标实符  右边是一个值(或者可以计算为一个值)
# 让这个标实符指向这个值所在的内存
In [24]: a = 3+4

In [25]: a
Out[25]: 7
  • 运算符的优先级
In [26]: 1+2*3
Out[26]: 7

In [27]: 2 * 3 **2
Out[27]: 18

In [28]: 2 * 3 > 1+2
Out[28]: True
# 算术运算符优先级高于比较运算符
In [29]: 2* 3 > 1+2 and True
Out[29]: True
# 比较运算符的优先级高于逻辑运算符
In [30]: (2 * 3 > 1+2) and True 
Out[30]: True
# 拿不准的时候加括号,或者我们的代码表现力更清晰的时候
In [32]: ((2*3) > (1+2)) and True
Out[32]: True
# 表达式由变量/常量 和运算符组成
  • 程序控制结构

顺序
分支
循环

  • 顺序结构
In [33]: a = 0
In [34]: a = a+1
In [35]: print(a)
1
  • 分支结构
  • 单分支
    if cond:
      block
    
In [36]: if 1 < 2:
    ...:     print ('1 less 2')
1 less 2
In [37]: if 1 < 2:
    ...:     print ('1 less 2')
    ...: print ('main block')
1 less 2
main block
In [39]: bool(0)
Out[39]: False

In [40]: bool(-0)
Out[40]: False

In [41]: bool(1)
Out[41]: True

In [42]: bool(None)
Out[42]: False

In [43]: bool([])
Out[43]: False

In [44]: bool('')
Out[44]: False
# 0\空的内置结构\None bool的结构都是False,非0非空的内置结构都是True
  • 双分支
if cond:
    true_block
else:
    false_block

In [45]: if 1<2:
    ...:     print ('1<2')
    ...: else:
    ...:     print ('2<1')
    ...:     
1<2

if cond:
    true_block
elif cond:
    true_block
elif cond:
    true_block
elif cond:
    true_block
else:
    false_block



In [5]: a = 5

In [6]: if a < 0:
   ...:     print ('less 0')
   ...: elif a < 3:
   ...:     print ('less 3')
   ...: elif a < 5:
   ...:     print ('less 5')
   ...: elif a < 7:
   ...:     print ('less 7')
   ...: else:
   ...:     print ('oops')
   ...:     
less 7
# 分支结构永远只有一个分支可执行;
  • 循环有while for 两种语句
while cond:
    block

In [8]: while a < 10:
   ...:     print(a)
   ...:     a +=1 # a = a + 1
   ...:     
0
1
2
3
4
5
6
7
8
9
# 通常在while循环中,循环体只需要修改条件,以使得条件为假
In [34]: i = 1 

In [35]: s =0

In [36]: while i <= 100:
    ...:     s +=i
    ...:     i +=1
    ...:     print (s)
    ...:
for element in itrator:
    block
In [26]: for i in range(5):
    ...:     print (i)
    ...:     
0
1
2
3
4
In [38]: for i in range(10):
    ...:     if i % 2 == 0:
    ...:         print (i)
    ...:         
0
2
4
6
8
In [1]: for  i in range(10):
   ...:     if i > 3:
   ...:         break
   ...:     print (i)
   ...:     
0
1
2
3
# break 用于提前结束循环;
In [3]: for  i in range(10):
   ...:     if i == 3:
   ...:         continue
   ...:     print (i)
   ...:     
0
1
2
4
5
6
7
8
9
# continue 用于跳过之后的语句

评论