语法
- 注释
注释就是代码源文件中,用来进行解释说明的文字,不会对代码的功能产生任何影响
- 编程语言中涉及到的所有的符号,都是指的英文输入状态下的符号。
- 标识符
标识符是用来程序中命名用的。 (比如:变量名、类名、函数名)
a.标识符是由字母、数字和下划线组成,并且数字不能开头(硬性)—————— python3中,标识符里面可以有中文(但是不推荐使用)
b.不能是关键字(保留字)(硬性)
c.大小写敏感(区分大小写,aaa和Aaa、AAA、AAa是不一样的)
d.要见名知义(规范)
e.不推荐使用python中的内置函数、类名去作为标识符(规范) - 关键字
系统保留的有特殊功能或者特殊意义的一些单词。这些单词不能用来给变量\函数\类等命名。
import keyword
print(keyword.kwlist)
结果:
'False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class',
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'
- 行与缩进
缩进:每一行代码的位置,与行开头位置之间的空格。
在python中,缩进的写法有严格的规范。同一级的代码,必须在同一个缩进下面。
如果在不该有空格产生的位置出现了对于的空格。程序会报错(Indentation Error)
如果在需要缩进的时候没有缩进也会报错。
- 关于行的规范:
函数和类的声明的前后必须要有两个换行。
一般一个功能实现完,实现下一个功能的时候最好也换行。
- 多行语句
一条语句在多行显示。
a.在需要换行的地方加反斜杠(\),然后再换行。
b.字典、列表、集合和元组等容器类型数据的字面量,在多行显示的时候可以直接换行。
- python中,一条语句结束,可以不写分号;但是如果一行中要写多条语句,那么每条语句之间必须使用分号隔开。
print('按时打算打算打算打算的发送到\
跟周星驰的地位阿萨德阿斯达斯大\
所大所大所付付付付寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻')
print ([1,2,2,3,
4,4,4,4,
5,5,5,5
])
结果:
按时打算打算打算打算的发送到跟周星驰的地位阿萨德阿斯达斯大所大所大所付付付付寻寻寻寻寻寻寻寻寻寻寻寻寻寻寻
[1, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5, 5]
- 字面量
数据类型对应的具体的值,例如:
10,100,-12 >>>整数
12.85,3.1415926,-0.13 >>> 小数
12e2,9e-2 >>> 数字
'hello world','123','abc',"abcd" >>>字符串
True,False >>>布尔值
[1,2,'sd','adsdsad'] >>>列表
{'a':1,'b':'123'} >>>字典 - python中的基本数据类型
数字(整型、浮点型、布尔、复数)、字符串(str)、列表(list)、字典(dict)。
集合(set)、元组(tuple)、none >>>代表没有和空
整型:int (在python2.x有long) >>>值是所有的整数
浮点型:float >>>包含所有的小数
布尔:bool >>>值只有True和False
复数: complex >>>值包含所有的复数
- 可以type函数查看数据的类型:type(数据)
print(type(9e-2))
print(type('654'))
结果:
<class 'float'>
<class 'str'>
提示
- 常用快捷方式
control+/ ———— 单行注释
"""
这是多行注释
"""
control+s ———— 保存
control+b ———— 编译
control+n ———— 新建文件
control+c ———— 复制
control+v ———— 粘贴
control+a ———— 全选
control+x ———— 剪切
control+z ———— 撤销
control+y / control + shift+ z ———— 反撤销
按住control。可以同时在多个位置设置光标
control+f ———— 弹出搜索框 - print函数是python内置函数,作用是在控制台打印print后面()里面的任何内容()里面的单引号,是字符串的标志,而不是内容。
在python2.X中 print 'hello world'。
在python3.X中 print后面需要括号。 - A.B.C版本号。A>>> 重大修改(不向下兼容) B>>> 添加新的功能 C >>> 修复BUG。
变量
- 什么是变量
在程序中可以通过变量来存储数据(容器)。 - 怎么声明变量
严格来说,python中的变量是不需要声明的,直接通过符号(=)给变量赋值,就是在声明变量。
因为python是动态语言,在声明变量的时候,不需要指定变量的类型。并且同一个变量可以赋不同类型的值
- 格式:变量名 = 值
- 变量名:标识符,PEP8的命名方式(所有的字母都小写,多个单词之间用下划线隔开,例如:user_name)
- 驼峰式命名:第一个单词首字母小写,后边每个单词的首字母都大写(例如:userName)
# 声明了一个变量age,并且赋值为18
age = 18
# 使用变量的时候,就相当于使用变量中存的值
print(age)
结果:
18
此处还运用到上诉的type函数查看数据类型
student_age = 23
print(student_age)
# 1.如果重新给一个变量赋值,那么新赋的值会覆盖原来的值
# 2.同一个变量可以赋不同类型的值
student_age = '555'
print(student_age,'\n',type(student_age))
结果:
23
555
<class 'str'>
补充
一个数据有type(类型)、id(数据存储在计算机中的地址)和value(值)三个属性。
变量存储数据的时候,有两种情况。
第一种情况:存 value >>> 数字类型、字符串。
第二种情况:存 id >>> 字典、列表、集合、元组。
number = 10
print(id(number))
#输出的是存入的地址
结果:
1401541824
运算符
- 数字运算符
- 求和:+
注意:求和操作,+两边必须是数字类型
True ---> 1 False ---> 0 - 求差:-
- 求乘积:*
- 求商:/
- 求上个数相除的余数:%
- 幂运算:**
- 整除://
- 比较运算符
(1)>
x > y:判断x是否大于y,如果是结果是True,否则是False
(2)<
x < y:判断x是否小于y,如果是结果是True,否则是False
(3)==
x == y: 如果x和y相等,结果就是True,否则是False
(4)<=、>=
x <= y: 如果x小于等于y,结果就是True,否则是False;反之。
(5)!=
x != y : 如果x和y不相等,结果是True,否则是False
(6)在python中,可以像数学中一样,连续判断 - 逻辑运算符
(1)与(and)
布尔1 and 布尔2 :两个都为True结果才是True,只要有一个是False,结果就是False。
需要两个或者多个条件同时满足,就使用逻辑与(and)
(2)或(or)
布尔1 or 布尔2 :只要有一个是True结果就是True,两个都为False结果才是False。
需要两个或者多个条件中满足一个就可以,就使用逻辑或(or)
(3)非(not)
not 布尔1 :如果是True,结果就是False,如果是False,结果就是True。
- 逻辑运算符的运算数据是布尔值,结果也是布尔值
# 写一个条件,判断一个人的年龄是否满足青年的条件(年龄大于18且小于28)
age = 20
print((age >18 and age<28) and (not age <= 0))
结果:
True
- 幅值运算符
赋值运算符:=, += -= ,*=,/=,%=, **=, //=
- 作用:将赋值符号右边的表达式的值赋给左边的变量
表达式:有结果的语句,例如: 10, 'abc',10+20 ,30>10.5等
赋值符号的左边必须是变量 - 赋值符号,是先算右边的结果,然后再把结果赋给左边的变量
number = 100
number += 10 #相等于:number = number+10
print(number)
number *= 2 # number = number * 2
print(number)
结果:
110
220
- 运算符的优先级
- 优先级从低到高:赋值运算符<逻辑运算符<比较运算符<算术运算符
- 算术运算符中:先幂运算再乘除取余取整再加减。
- 如果你不确定运算顺序,可以通过添加括号来改变运算顺序。有括号就先算括号里面的。
进制转换
十进制
基数:0,1,2,3,4,5,6,7,8,9
特点:逢10进1二进制
基数:0,1
特点:逢2进1八进制
基数:0,1,2,3,4,5,6,7
特点:逢8进1十六进制
基数:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
特点:逢16进1
- 进制间的转换:
十进制转换成其他进制:整除取余法。
八进制转二进制:一位八进制转换成三位二进制。
十六进制转二进制:一位十六进制转换成四位二进制。 - python中的二进制、八进制和十六进制的转换
a.二进制
基数是0,1,并且数字前加前缀0b表示二进制
bin(整数) >>> 将其他进制的整数转换成二进制数
print(0b101111)
结果:
47
b.八进制
基数是0-7,并且数字前加前缀0o表示八进制
oct(整数) >>> 将其他进制的整数转换成八进制数
print(0o37)
结果:
31
c.十六进制
基数0-9,a-f(A-F),并且数字前加前缀0x表示十六进制
hex(整数) >>> 将其他进制的整数转换成十六进制数
print(0x4e)
结果:
78
练习
1.下列四组数,依次为二进制、八进制和十六进制,符合要求的是(d)。
a. 12, 77, 10
b. 12, 80, 10
c. 11, 78, 19
d. 11, 77, 19
2.二进制数加法运算的基本特点是“逢二进一”,即0+0=0,0+1=1,1+0=1,1+1=0并进位。运用这一基本法则和十进制运算的类似规律,得出二进制数加法运算1001+101的结果为( c ) 。
a. 1001
b. 1010
c. 1110
d. 1101
3.八进制754中的数码7对应的位权是( c ) 。
a. 10^2 b. 16^1 c. 8^2 d. 2^2
4.十进制数53转换成二进制数是( b ) 。
a. 100101
b. 110101
c.100100
d.110100
5.(偏难)已知,十进制中的8在X进制中表示为11,即(10)8=(X)11。请问这个X进制具体为( b )进制。
a. 6
b. 7
c. 8
d. 9
6.(偏难)二进制的1000001相当十进制的④,二进制的100.001可以表示为④ 。
A: ① 62 ② 63 ③ 64 ④ 65
B: ① 2^3 +2^–3 ② 2^2 +2^–2 ③ 2^3 +2^–2 ④ 2^2 +2^–3
下面定义变量正确的是( d ) 。
a. a = b = c = 10
b. a,c = 10
c. in = 20
d. num = 10; t = 20n = 6784,以下能够获取到7 的方法有(c)。
a. n / 1000 % 100
b. n % 1000 / 100
c. n // 100 % 10
d. n // 10 % 100 // 10
9.以下表达式 10 / 4 + 23 // 4 * 2 - 30的计算结果是:-17.5。
答案:
1.d 2.c 3.c 4.b 5.b 6.④ ④ 7.d 8.c 9.-17.5