基础语法

Python的语言类型

Python是动态语言、强类型语言

 静态编译语言

  •   实现声明变量类型,类型不能再改变
  •   编译时检查

动态编译语言

  •   不用事先声明类型,随时可以赋值为其他类型
  •   编程时不知道是什么类型,很难推断

强类型语言

  •    不同类型之间操作,必须先强制类型转换为同一类型。print('a'+1)

弱类型语言

  •   不同类型间可以操作,自动隐式转换,JavaScript中console.log(1+'a')

 

Python基础语法

注释—— # 标注的文本

 数字

  •   整数,不区分long和int
  •     进制0xa、0o10、0b10
  •     bool,2个值True、False
  •   浮点数
  •     1.2、3.1415、-0.12,1.46e9等价于1.46*109
  •   复数,1+2j

字符串

  •   使用 ' " 单双引号引用的字符的序列
  •    '''和""" 单双三引号,可以跨行、可以在其中自由的使用单双引号
  •   在字符串前面加上r或者R前缀,表示该字符串不做特殊的处理

转义序列

  •    \\ \t    \r    \n    \'    \"
  •   前缀r,把里面的所有字符当普通字符对待

缩进

  •   未使用C等语言的花括号,而是采用缩进的方式表示层次关系
  •   约定使用4个空格缩进

续行

  •   在行尾使用 \
  •    如果使用各种括号,认为括号内是一个整体,内部跨行不用 \

标识符

  •   1. 一个名字,用来指代一个值
  •   2. 只能是字母、下划线和数字
  •   3. 只能以字母或下划线开头
  •   4. 不能是python的关键字,例如def、class就不能作为标识符
  •   5. Python是大小写敏感的

  约定: 不允许使用中文 不允许使用歧义单词,例如class_ 在python中不要随便使用下划线开头的标识符

常量

  •    一旦赋值就不能改变值的标识符
  •   python中无法定义常量

字面常量

  •   一个单独的量,例如 12、"abc" 、'2341356514.03e-9'

变量

  •   赋值后,可以改变值的标识符

 

运算符

算数运算符

  •   + - * / % **
  •   自然除/结果是浮点数,整除//。注:2.x中/和//都是整除

位运算符

  •    &   |   ~   ^   <<   >>
  •    常用方式:乘除2的倍数,32 // 8相当于 32 >> 3
  •   12,0xc,0o14,0b1100

 

原码、反码、补码,负数表示法

原码

  •   5 => 0b101,1 => 0b1 ,-1 => -0b1, bin(-1)

 反码

  •   正数的反码与原码相同;负数的反码符号位不变其余按位取反

补码

  •   正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1

负数表示法

  •   早期数字电路的CPU中的运算器实现了加法器,但是没有减法器,减法要转换成加法
  •   负数在计算机中使用补码存储,-1的补码为1111 1111
  •   5-1 => 5+(-1)直觉上是0b101-0b1,其实计算机中是0b101+0b11111111,溢出位舍弃

 

运算符

比较运算符

  •   ==    !=     >    <    >=    <=   
  •   返回一个bool值
  •   1 < '1'    1 == '1'
  •   链式比较操作符

      4>3>2 4>mynumber >=1

 逻辑运算符

  •    与或非 and or not

短路运算符

  •   and 如果第一个表达式为False,后面就没有必要计算了,这个逻辑表达式一定是False
  •   or 如果第一个表达式True,后面没有必要计算了,这个逻辑表达式一定是True

 赋值运算符

  •  a = min(3, 5)
  • +=  -=  *=  /=  %= 等
  •  x = y = z = 10

成员运算符

  •    in、not in

身份运算符

  •  is 、is not

!!!算数运算符 > 位运算符 > 身份运算符 > 成员运 算符 > 逻辑运算符

 

单分支结构

 if语句

  if condition:

  代码块

  condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)

   if 1<2:  

    print('1 less than 2') 

代码块

  •   类似于if语句的冒号后面的就是一个语句块
  •   在if、for、def、class等关键字后使用代码块

 

多分支结构

if...elif...else语句

if condition1:

    代码块1

elif condition2:

    代码块2

elif condition3:

    代码块3 ......

else: 代码块

 

分支嵌套

嵌套结构,可以是分支、循环的嵌套

可以互相嵌套多层

score = 80
if score<0: 
    print('wrong') 
else: 
    if score==0: 
        print('egg') 
    elseif score <= 100: 
            print('right') 
        else:
            print('too big')

 

循环——while语句

语法

  •   while condition: block
  •   当条件满足即condition为True,进入循环体,执行block
flag=10 
while flag: 
    print(flag) 
    flag -= 1 

 

循环——for语句

语法

for element in iteratable:

  block

当可迭代对象中有元素可以迭代,进入循环体,执行block

range函数

for i in range(10):
    print(i+1) 

 

循环 continue语句

中断当前循环的当次执行,继续下一次循环

 举例:计算10以内的偶数

for i in range(0,10): # 使用位与 
    if i & 1: 
        continue 
    print(i)

 

循环 break语句

终止当前循环

举例:计算1000以内的被7整除的前20个数(for循环)

count = 0 
for i in range(0,1000,7):
    print(i) 
    count += 1 
    if count >= 20: 
        break    

 

循环 continue、break语句

  • continue和break是循环的控制语句,只影响当前循环,包括while、for循环

  •  如果循环嵌套, continue和break也只影响语句所在的那一层循环

  • continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所 在的循环

posted @ 2018-07-31 14:39  rivendare  阅读(142)  评论(0)    收藏  举报