Python 基础语法
注释:
# 标注的文本
数字
整数,不区分long,int
进制:0xa(十六进制),0o10(八进制),0b10(二进制)
bool:2个值 True,False
浮点数:
1.2,3。1415,-0.12,1.46e9=1.46*10⁹
复数:1+2j
字符串
使用' "单双引号引用的字符的序列
''' 和""" 单双三引号,可以跨行、可以在其中自由的使用单双引号
在字符串前面加r或者R前缀,表示该字符串不做特殊处理
转义序列
\\,\t,\r,\n,\',\"
前缀r,把里面的所有字符当普通字符对待
缩进
未使用C等语言的花括号,而是采用缩进的方式表示层次关系
约定使用4个空格缩进
续行
在行尾使用\
如果使用跟着括号,认为括号内是一根整体,内部跨行不用\
标识符
1, 一个名字,用来指代一个值
2,只能字母、下划线和数字
3,只能以字母或下划线开头
4,不能是python的关键字,例如def、class就不能作为标识符
5,Python是大小写敏感
约定:
不允许使用中文
不允许使用歧义单词,例如class_
在python中不要随意使用下划线开头的标识符
常量:
一旦赋值就不能改变值的标识符
python中无法定义常量
字面常量:
一个单独的量,例如12,"abc","1233.03e-9"
变量:
赋值后,可以改变值的标识符
Python语言类型
静态编译语言:
实现声明变量类型,类型不能再改变
编译时检查
动态编译语言:
不用事先声明类型,随时可以辅助为其他类型
编译时不知道是什么类型,很难推断
强类型语言:
不同类型之间的操作,必须先强制转换类型为同一类型。
print("a"+1)
弱类型语言:
不同类型之间可以操作,知道隐士转换,JavaScript中
console.log(1+"a")
python是动态语言、强类型语言
动态/强类型语言:
Python , Magik ,Clojure , Ruby , Erlang , Groovy
静态强类型语言:
F# ,Hashkel ,Java , C# , Scala
静态弱类型语言:
C ,C++
动态弱类型语言:
PHP, Perl , VB , JavaScript
运算符
算数运算符:
+ , - , * , / , % ,**(次方)
自然除/结果是浮点数,整除//。 注:2.X /,//都是整除
位运算符:
& | ~ ^ << >>
常用:
32>>2 8 (除以2的n次方)
32<<1 64(乘以2的n次方)
12 , 0xc , 0o14 , 0b1100
bin(12) = '0b1100'
~12 等于多少,-13
原码,反码,补码,复数表示法
原码:5 0b101
反码:正数的反码与原码相同;负数的反码符号位不变其余按位取反
补码:正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1
5-1
0000 0101 (5)
1000 0001 (-1)原码
补码1111 1110 +1
1111 1111 补码
5+(-1)
1111 1111
0000 0101
1 0000 0100
~12 补码的补码
0000 1100 (+12)
1111 0011 补码
1000 1100 +1 (13)
10^9 ,10^(-9)
0000 1010 (10)
0000 1001 (9)
3
0000 1010 (10)
1000 1001 (-9)
1111 0111 (-9 补码)
1000 1001 (-9补码的补码)
-3
比较运算符:
==, !=, > , < ,>= , <=
不同类型可以比较是否相等,不可以比较大小 1 == 'a'
相同类型可以比较大小1>2 '1'>'2'
逻辑运算符:
与或非and or not
短路运算符:优化代码的一种手段
and 前面是False 后面就没必要算
or 前面是True,后面没必要算
赋值运算符:
a = min(3,5)
+= , -= ,*= ,/= ,%= 等
x = y = z = 10
成员运算符:
in ,not in
身份运算符:
is, is not
运算符优先级
用() 解决问题
算数运算符 > 位运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
(+ -) > (<< >>) > (&) > (^) > (|) > (<,>,<=,>=,==,!=) >
(is ,is not) > (in ,not in) > (not ) > (and) > (or)
表达式 Expression
由数字、符号、括号、变量等的组合:
算数表达式
逻辑表达式
赋值表达式