Python基本语法

2.1 基本语法

2.1.1 注释

# '''注释''' """注释"""

# 第一个注释
print("Hello World!")  # 第二个注释
def find_all(self):
    """Retuen all items."""
    return self.find('all')

2.1.2 行与缩进

if True:
    print ("True")
 else:
    print ("False")
if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")  # 缩进不一致,导致编译出现语法错误

缩进时,绝对不要使用 tab,也不要 tab 和空格混用。

2.1.3 语句换行

​ 原则上每行代码长度不超过80个字符。对于过长的可以通过 {} [] () 隐式连接。

string = ("Python 是一种面向对象、解释型计算机程序设计语言,"
         "由 Guido van Rossum 于 1989 年底发明。"
         "第一个公开发行版发行于 1991 年,"
         "Python 源代码同样遵循 GPL (Gnu General Public License) 协议。")

2.2 变量与数据类型

2.2.1 变量与赋值

num_one = 100
num_two = 87
result = num_one + num_two

2.2.2 变量的类型

数 据 类 型 { 数 字 类 型 ( n u m b e r ) { 整 形 ( i n t ) 浮 点 型 ( f l o a t ) 复 数 ( c o m p l e x ) 布 尔 类 型 ( b o o l ) 字 符 串 类 型 ( s t r i n g ) 列 表 类 型 ( l i s t ) 元 组 类 型 ( t u p l e ) 字 典 类 型 ( d i c t i o n a r y ) 数据类型 \left\{ \begin{matrix} 数字类型(number) \begin{cases} 整形(int)\\\\ 浮点型(float)\\\\ 复数(complex) \end{cases}\\\\ 布尔类型 (bool) \\ \\ 字符串类型 (string) \\\\ 列表类型 (list) \\\\ 元组类型 (tuple) \\\\ 字典类型 (dictionary)\\ \end{matrix} \right. (number)(int)(float)(complex)(bool)(string)(list)(tuple)(dictionary)

  • 数字类型

    整型:0101	83	-239	0x80	299384938832
    浮点型:3.1415	4.2E-10	-2.34E-19
    复数型:3.12+1.23j	-1.23-98j
    
  • 布尔类型

    True		1
    False 		0
    
  • 字符串

    string_one = 'Python'
    string_two = "Python"
    string_three = '''Python'''  # """Python"""
    
  • 列表和元组类型

    他们可以存储任意类型的值,这些值称为元素。列表 中元素用 [] 包含,元素个数和值可以随意修改。元组 中元素用 () 包含,元素不可被修改。

    list_name = [1, 2, 'hello']  # 列表
    tuple_name = (1, 2, 'hello')  # 元组
    
  • 字典类型

    字典是映射数据类型,由键-值对组成。字典可以存储不同类型的元素,元素用{} 包含。键通常是字符串或者数值,值是任意的。

    dict_name = {"name" : "zhangsan", "age" : 18}  # 字典
    
>>> number = 5.2
>>> type(number)		# 使用type查看类型
<type 'float'>

2.3 标识符和关键字

2.3.1 标识符

  1. 由字母数字下划线组成,不能以数字开头。
  2. 区分大小写。
  3. 不能是关键字。
  • 起一个有意义的名称
  • 对类命名时用大写字母开头的单词(CapWorld) 模块应是小写加下划线(low_with_under)。

2.3.2 关键字

Falsedefifraise
Nonedelimportreturn
Trueelifintry
andelseiswhile
asexceptlambdawith
assertfinallynonlocalyield
breakfornot
classfromor
continueglobalpass
>>> help()  # 进入帮助系统
help keywords  # 查看所有的关键字列表
help return  # 查看 return 这个关键字的说明
help quit  # 退出帮助系统

2.4 简单数值类型

2.4.1 整型

​ 十进制,二进制(以"0b" 或者 “0B” 开头),八进制(以 “0o” 开头),十六进制(以"0x" 或者 “0X” 开头)。

​ 32位计算机上的整型是32位,范围 -231~231-1。64位计算机上的整型是64位,范围 -263~263-1。

>>> bin(20)     # 将十进制 20 转为二进制
'0b10100'
>>> oct(20)		# 将十进制 20 转为八进制
'0o24'
>>> hex(20)		# 将十进制 20 转为十六进制
'0x14'

2.4.2 浮点型

<实数> e/E <整数>

​ 范围 -1.79E+308 ~ 1.79E+308

1.34E31.34 × \times × 103
1.5E-31.5 × \times × 10-3
1.2e51.2 × \times × 105

2.4.3 布尔类型

​ 以下对象的布尔值都是False:

  1. None
  2. False
  3. 0
  4. 0L
  5. 0.0
  6. 0.0+0.0j
  7. “” (空字符串)
  8. [] (空列表)
  9. () (空元组)
  10. {} (空字典)

2.4.4 复数类型

  1. 复数由实数和虚数两部分构成,real + imag j 或者 real + imag J
  2. 复数的两部分都是浮点数。
  3. a.conjugate() 返回 a 的共轭复数。
>>> a = 1+2j
>>> a
(1+2j)
>>> a.real  # 实数部分
1.0
>>> type (a.real)
<class 'float'>
>>> a.imag  # 虚数部分
2.0
>>> type (a.imag)
<class 'float'>

2.4.5 数字类型转换

函数说明
int(x[,base])将 x 转换为一个整数
float(x)将 x 转换为一个浮点数
complex(real[,imag])创建一个复数
# 将浮点数转换成整数
>>> a = 1.2
>>> int(a)
1
# 将整数转换成浮点数
>>> b = 2
>>> float(b)
2.0
# 创建一个复数
>>> complex(3.4)
(3.4+0j)

2.5 运算符

2.5.1 算术运算符

运算符描述
+加:两个对象相加
-减:两个数相减
*乘:两个数相乘或者是返回一个被重复若干次的字符串
结果为 float
/除:a 除 b
%取余:返回除法的余数
**幂:返回 a 的 b 次幂
//取整除:返回商的整数部分

2.5.2 赋值运算符

=

>>> num = 1 + 2
>>> num
3

>>> x = y = z = 1
>>> x
1
>>> y
1
>>> z
1

>>> x, y = 1, 2
>>> x
1
>>> y
2

不支持自加(++)自减(–)

2.5.3 复合赋值运算符

运算符描述
+=加法赋值运算符
-=减法赋值运算符
*=乘法赋值运算符
/=除法赋值运算符
%=取模赋值运算符
**=幂赋值运算符
//=取整除赋值运算符

2.5.4 比较运算符

== != > < >= <=

2.5.5 逻辑运算符

运算符逻辑表达式描述实例结论
andx and y布尔“与”,若 x 的布尔值为False,则返回 x,否则返回 y若 a = 10,b = 20(a and b) 结果为20同True返回True
orx or y布尔“或”,若 x 的布尔值为True,则返回 x,否则返回 y若 a = 10,b = 20(a and b) 结果为10有True返回True
notnot x布尔“非”,若 x 的布尔值为True,则返回 False,否则返回 True若 a = 10(not a)结果为False若True返回False,若False返回True

2.5.6 成员运算符

运算符描述
in如果在指定的序列中找到值返回True,否则返回False。
not in如果在指定的序列中没有找到值返回False,否则返回True。

实测:

a = 10
b = 20
list_demo = [1, 2, 3, 4, 5]
# 判断变量 a 是否在给定的列表 list_demo 中
if a in list_demo:
    print("1—变量 a 在 list_demo 中")
else:
    print("1—变量 a 不在 list_demo 中")

# 判断变量 b 是否在给定的列表 list_demo 中
if b not in list_demo:
    print("2—变量 b 不在 list_demo 中")
else:
    print("2—变量 b 在 list_demo 中")

# 修改 a 的值
a = 2
if a in list_demo:
    print("3—变量 a 在 list_demo 中")
else:
    print("3—变量 a 不在 list_demo 中")

结果

2.6 位运算

  1. << 按位左移
  2. >> 按位右移
  3. & 按位与
  4. | 按位或
  5. ^ 按位异或
  6. ~ 按位取反

2.6.1 按位左移

x << n x 的二进制位全部左移 n 位,高位丢弃,低位补 0。

>>> x = 9
>>> bin(x << 4)
'0b10010000'

左移 n 位等价于 × 2 n \times 2^n ×2n

2.6.2 按位右移

x >> n x 的二进制位全部右移 n 位右边移出丢弃,左边补 0 或者符号位。

>>> a = 8 
>>> bin(a >> 2)
'0b10'

​ **右移 n 位等价于 ÷ 2 n \div 2^n ÷2n **

2.6.3 按位与

& 二进制同 1 为 1,否则为 0。

>>> a = 9
>>> b = 3
>>> bin (a & b)
'0b1'

2.6.4 按位或

| 二进制有 1 则 1,否则为 0。当参操作数为负数时,均以补码形式出现。

>>> a, b= 8, 3
>>> bin(a | b)
'0b1011'

2.6.5 按位异或

^ 二进制同为0,不同为1。

>>> a, b = 8, 4
>>> bin(a ^ b)
'0b1100'

2.6.6 按位取反

~ 二进制 1 变 0,0 变 1。

9 取反结果为 -10

​ 整数 源码 = 补码 = 反码

  1. 9 二进制00001001
  2. 取反11110110 补码
  3. 10001010 源码即-10
>>> a = 9
>>> ~a
-10
>>> bin(~a)
'-0b1010'

对于整数 x 取反结果 -x -1

2.7 运算符优先级

运算符描述
**指数(最高优先级)
~ + -按位取反 一元加号和减号(+@ -@)
* / % //乘 除 取模 取整除
+ -加 减
>> <<右移 左移
&按位与
^ |位运算符
<= < > >=比较运算符
== !=等于运算符
= %= /= //= -= += *= **=赋值运算符
(not) in成员运算符
or and逻辑运算符
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d         # 等价于(30 * 15) / 5
print ("(a + b) * c / d 运算结果为: ", e)
e = ((a + b) * c) / d       # 等价于(30 * 15) / 5
print ("((a + b) * c) / d 运算结果为: ", e)
e = (a + b) * (c / d)       # 30 * (15 / 5)
print ("(a + b) * (c / d) 运算结果为: ", e)
e = a + (b * c) / d         # 20 + (150 / 5)
print ("a + (b * c) / d 运算结果为: ", e)
        or  and             |            逻辑运算符             |
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d         # 等价于(30 * 15) / 5
print ("(a + b) * c / d 运算结果为: ", e)
e = ((a + b) * c) / d       # 等价于(30 * 15) / 5
print ("((a + b) * c) / d 运算结果为: ", e)
e = (a + b) * (c / d)       # 30 * (15 / 5)
print ("(a + b) * (c / d) 运算结果为: ", e)
e = a + (b * c) / d         # 20 + (150 / 5)
print ("a + (b * c) / d 运算结果为: ", e)

结果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值