Python语言之语法基础
Python语言之语法基础
前言
人生苦短,我用Python。
一、基本语法
注释
-
Python中的单行注释以#开头!
-
多行注释可以使用三引号作为开头和结束符号
-
中文编码注释,在文件开头加上中文声明注释,用以指定源码文件的编码格式(coding:gbk/utf-8)
行与缩进
python最具特色的就是使用缩进来表示代码块
并不强制要求缩进4个空格,但要求缩进相同
if True:
print ("True")
else:
print ("False")
print ("False")
语句换行
1.Python 通常是一行写完一条语句,但如果语句很长,我们需要换行,这时可以使用圆括号来实现。
s=("Python是一种面向对象、解释型计算机程序设计语言,"
"由Guido van Rossum于1989年底发明。"
"第一个公开发行版发行于1991年,"
"源代码同样遵循 GPL(GNU General Public License)协议。")
2.对于字符串或者字符类型,还可使用三引号来实现。
3.对于代码来说,可使用反斜杠\来实现。
注:反斜杠后不能用空格或者其他符号
a = 1
b = 2
c = a +\
b
# 等同于c = a + b
print(c)
4.需要注意的是,在 [](列表), {}(字典), 或 ()(元组) 中的语句,不需要使用圆括号进行换行。
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
二、变量和数据类型
什么是变量
Python中的变量用来存储数据,变量可以理解为带标签的篮子,你把需要的数据放进去,其类型和值在赋值的那一刻被初始化。
注:变量不用声明类型,直接赋值使用。
例:
num1 = 100
num2 = 87
result = num1 + num2
变量由三部分组成:
-
标识:表示对象所存储的内存地址。
-
类型:表示对象的数据类型。
-
值:表示对象所存储的具体数据。
变量的定义与使用:
当变量被多次赋值之后,变量名会指向新的空间。
例:
name= '罗mio'
print(name)
name= '朱律叶'
print(name)
数据类型:
- 数字类型:整型、浮点、复数、布尔类型
- 布尔类型(bool)
- 字符串类型(str)
- 列表类型
- 元组类型
- 字典类型
- 集合
三、标识符和关键字
标识符
若希望在程序中表示一些事物,需要开发人员自定义一些符号和名称,这些符号和名称叫做标识符。
-
标识符由字母、下划线和数字组成,且数字不能开头。
-
Python中的标识符是区分大小写的。
-
python中的标识符不能使用关键字 。
注:关键字不能用作标识符,在系统编译时会引起歧义。
例:
test = 1
test_1 = Test()
_test1 = 1
关键字
关键字指的是具有特殊功能的标识符。
>>> help() # 进入帮助系统
help> keywords # 查看所有的关键字列表
help> return # 查看return这个关键字的说明
help> quit # 退出帮助系统
四、简单数值类型
整型
整数类型(int)简称整型,它用于表示整数。
- 二进制:0b10100(以0b开头,bin()转换)
- 八进制: 0o10111(以0o开头,oct()转换)
- 十进制: 64(int()转换)
- 十六进制: 0x14 (以0x开头,hex()转换)
浮点型
- 浮点型(Float)用于表示实数。
- 浮点型字面值可以用十进制或科学计数法表示。
<实数>E或者e<整数>
E或e表示基是10,后面的整数表示指数,指数的正负使用+或-表示。
Python的浮点型遵循的是IEEE754双精度标准,每个浮点数占8个字节,能表示的数的范围是1.8e-308~1.8e+308 (64位)
布尔类型
- 布尔型其实是整型的子类型。
- 布尔型数据只有两个取值:True和False,分别对应整型的1和0。
以下对象的布尔值都是False:
- None、False(布尔型)、0(整型0)、0x0(16进制0)、0.0(浮点型0)、0.0+0.0j(复数0)
- “ ”(空字符串)、[ ](空列表)、( )(空元组)、{ }(空字典)
复数类型
复数类型,用于表示数学中的复数,例如,5+3j。
- 复数由实数部分和虚数部分构成,表示为:real + imag j
- 复数的实数real和虚数imag都是浮点型
数字类型转换
查看变量类型
使用type()函数
a = 10
print(type(a))
输出:
五、运算符
算术运算符
+ 加:两个对象相加
- 减:得到负数或一个数减去另一个数
* 乘:两个数相乘或是返回一个被重复若干次的字符串
/ 除:x除以y
% 取余:返回除法的余数
** 幂:返回x的y次幂
// 取整除:返回商的整数部分
赋值运算符
赋值运算符只有一个,即=,它的作用是把等号右边的值赋给左边。例如:x=1
-
为多个变量赋同一个值:x=y=z=1
-
将多个值赋值给多个变量 a, b = 1, 2
复合赋值运算符
+= 加法赋值运算符 c+=a等效于c=c+a
-= 减法赋值运算符 c-=a等效于c=c-a
*= 乘法赋值运算符 c*=a等效于c=c*a
/= 除法赋值运算符 c/=a等效于c=c/a
%= 取模赋值运算符 c%=a等效于c=c%a
**= 幂赋值运算符 c**=a等效于c=c**a
//= 取整除赋值运算符 c//=a等效于c=c//a
比较运算符
== 检查两个操作数的值是否相等
!= 检查两个操作数的值是否不等
> 检查左操作数的值是否大于右操作数的值
< 检查左操作数的值是都小于右操作数的值
>= 检查左操作数的值是否大于或等于右操作数的值
<= 检查左操作数的值是否小于或等于右操作数的值
逻辑运算符
and x and y 布尔“与”,如果x为False,x and y返回False,否则它返回y的计算值
or x or y 布尔“或”,如果x为True,它返回True,否则返回y的计算值
not not x 布尔“非”,如果x为True,返回False,如果x为False,它返回True
成员运算符
in 如果在指定的序列中找到值返回 True,否则返回 False。
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
六、位运算
按位左移和按位右移
按位左移(<<)指的是二进位全部左移n位,高位丢弃,低位补0 。
按位右移(>>)指的是将二进位全部右移n位,移出的位丢弃,移进的位补符号位。按位右移的符号位保持不变。
按位与、按位或和按位异或
按位与(&)
指的是参与运算的两个数各对应的二进位进行“与”的操作。
只有对应的两个二进位都是1时,结果位才为1,否则结果位为0.
1001
0011
0001
按位或(|)
指的是参与运算的两个数各对应的二进位进行“或”的操作。
只要对应的两个二进位有一个为1时,结果位就为1
1000
0100
1100
按位异或
就是将参与运算的两个数对应的二进制位进行比较,如果一个位为1,另一个位为0,则结果为就为1,否则,结果位为0。
1000
0100
1100
按位取反
- 按位取反就是将二进制的每一位进行取反;
- 0取反为1,1取反为0
- 但是,在计算机系统中,数值一律用补码来表示和存储
计算机中原码补码计算规则:
计算机存储n位,左边最高位为符号位,1为负,0为正;
所有数值在计算机中以补码形式存储
正数的原码与补码相同
负数的补码为原码按位取反再+1(符号位不变)
负数的原码为补码-1再按位取反
原码补码转换过程中,符号位不变
按位取反计算方法:~x = -(x+1)
取反符号计算流程:
① 无论给的正数、负数,先求该数的原码。(因为下一步的取反是对原码取反)
② 对①得到原码取反,包括符号位也取反(因为要执行取反运算符)
③ 对②得到的结果求补码。(第②步得到取反后的值,要在计算机内以补码存储)
④ 把③的结果转换为有正负号的十进制值。
源码求补码:
(1)如果原码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果原码的符号位为“1”,表示是一个负数,求补码的操作是:符号位为1,其余各位取反,然后再整个数加1。
补码求原码:
(1)如果该补码的符号位为“0”,表示是一个正数,所以原码补码是同一个。
(2)如果该补码的符号位为“1”,表示是一个负数,求原码的操作是:
方法1(求一次补码即得到原码):符号位为1,其余各位取反,然后再整个数加1。
方法2(减1求反):符号位为1,整个数减1,再取反(符号位不取反)。
七、运算符优先级
** 指数(最高优先级)
~,+,- 按位翻转,一元加号和减号
(最后两个的方法名为+@ 和 -@,例如:+5,-5 正5,负5)
*,/,%,// 乘,除,取模和取整数
+,- 二元加号和减号
>>,<< 右移,左移运算符
& 按位与
|,^ 按位或,按位异或
<=,>=,==,!= 比较运算符
=,%=,/=,//=,-=,+=,*=,**= 赋值运算符
is,is not 身份运算符
in,not in 成员运算符
not,or,and 逻辑运算符
输入输出
输入
给变量赋值(结果为字符串):
a = input()
print(type(a))# 输出a的类型
带提示文字:
a = input('请输入:')
输出
print()函数输出的内容可以是数字、字符串或含有运算符的表达式。
直接输出:
print('hello world') # 输出字符串需要加引号
print(1+1) # 输出表达式
格式化输出:
print('{0} 和 {1}'.format('Google', 'Runoob'))
保留小数位数:
print('常量 PI 的值近似为 {0:.3f}。'.format(3.141592653))
print('这个浮点数是%.1f' % 3.14159) # 取1位小数
输出参数:
a,b = 0,8
print(a,b)
f-string输出
python3.6之后的版本引入了一种新的字符串格式化方式:f-tring格式化字符串。从%s格式化到format格式化再到f-string格式化,格式化的方式越来越直观,f-string的效率也较前两个高一些,使用起来也比前两个简单一些。
例:
a = 1
print(f'test print:{a}')
# 输出结果:test print:1
结尾
生活比电影狠多了,从来不给弱者安排大逆转的情节。