一、认识Python
1.常用的快捷键
- control+/注释的快捷键,添加或取消注释,删除代码可以将代码注释,方便以后使用
- control+s保存
- control+b编译(在相应软件中有用)
- control+r执行或编译加执行
- control+c复制/拷贝
- control+v粘贴
- control+x剪切
- control+z撤销
- control+shift+z/control+y反撤销
- control+f查找
- control+a全选
- control+n新建
- shift可以选择部分内容(和鼠标配合,选择开始和结束中间的部分)
- control可以让多个位置出现光标(和鼠标配合)
附:不是只在Python里有效
二、Python的基本用法
1.注释
意义:写在代码中不参与编译执行的部分
作用:对代码进行注释说明,方便程序员更好的阅读
分类:
单行注释:在文本内容前面加#
多行注释:
a.每一行前都加一个#号
# 我是注释1
# 我是注释2
b.将注释放在三个单引号/三个双引号中(推荐使用双引号)
'''
我是多行注释1
我是多行注释2
'''
2.标识符
作用:标识符是用来命名的(比如变量名,函数名,类名)
要求:
a.由字母数字和下划线组成,并且数字不能开头(Python2.x规范)
b.在Unicode编码中,除了ASCII码表中的字母、数字、下划线以外不能作为标识符的一部分,其他都可以,数字不能开头(Python3.x规范)
注意: 在实际开发中,现在还是推荐使用Python2.x规范
- 测试代码:
abc = 100
abc123 = 100
abc_123 = 100
_123 = 100
# 1abc = 100 报错
你好 = 100
3.语句
C/JAVA语法,每条语句结束必须加分好
python中一条语句结束可以加分号也可以不加;如果一行显示多条语句,那么每条语句之间必须加分号
- 测试代码:
print('abc');print('ABC')
-
测试结果:
4.行和缩进
同样等级的代码对应的缩进必须一致,只有在需要产生代码块的时候才需要加缩进,函数的声明和类的声明的前后需要有两个空行
5.多行显示问题
- a. 在需要换行的地方加反斜杠,然后再换行(反斜杠需要破坏数据本身)
sum1 = 1312321323+123213213123+1232142321+\
213213123213+2321321312+21321321321+\
3213213+12321321321+123213213
- b. 如果是列、字典、元祖和集合的值,可以直接换行
name = [1321,13213,2324343,535353,
3434343,2432423432,3543532532,
34532532532,32532532532,3532535325,
35325325,2353253253]
6.常见的数据类型及其自变量
分类:
中文 | 英文 |
---|---|
整型 | int |
浮点型 | float |
布尔 | bool |
字符串 | str |
列表 | list |
字典 | dict |
元祖 | tupl |
集合 | set |
介绍:
整型:相当于数学中的整型,例如:100,-12,+30
浮点型:带小数点的数,例如:12.12,0.0,-12.53
布尔型:只有两个值,分别是True(真)和False(假)
字符串:用单引号或者双引号括起来的数据,例如:'abc','100','abc100`~'
7.关键字
意义:在python中有特殊功能和特殊意义的一些标识符(单词)
打印关键字代码:
import keyword #导入keyword模块
print(keyword.kwlist) #打印所又的关键字
-
结果:
三、数字类型
1.四种数字类型
中文 | 英文 |
---|---|
整型 | int |
浮点型 | float |
布尔 | bool |
复数 | complex |
2.数字类型简介
- a.整型(int):包含python所有整型,Python3.x整型只有int类型这一种,但是Python2.x除了int还有long
例子:
100
123
-78
+782
- b.浮点型(float):包含了python中所有小数
注意:浮点型支持科学计数法
例子:
12.89
-123.9098
+237.890
print(12e2) #12*10^2 1200.0
print(12e-3) #12*10^(-3) 0.012
- c.布尔(bool):布尔类型的值只有两个,分别是True(对应1)和False(对应0)
注意:布尔值的首字母是大写的
例子:
True
False
print(False+1) #1
print(True+1) #2
- d.复数(complex):由实部和虚部组成的数字
例子:
10+10j
3.获取数字类型
方法:在Python中采用type(数值/变量),来获取括号中值的类型
例子:
print(type(10j))
print(type(100))
print(type(True))
print(type(2e2))
-
结果:
4.转换数字类型
- 方法:在Python中采用类型名(),将其他类型的数据,转化成当前类型
- 例子:
print(int(12.5))
print(bool(10))
print(float(100))
print(complex(100))
# print(int(10j)) 注意:复数不能转换成整型和浮点型
-
结果:
四、变量
1.变量
作用:程序在内存中存储数据的容器
2.声明变量
概念:在内存中开辟空间存储数据
方法:
C/Java声明变量:类型 变量名 = 初值;
Python声明变量:变量名 = 初值说明:
a.变量名:程序员自己命名,要求是标识符,并且不是关键字;
所有的字母必须是小写的,如果变量名由多个单词组成,多个单词之间用下划线隔开;
看见变量名,要知道这个变量大概存的是什么数据
b.=:赋值符号,将等号右边的值赋给左边的变量
c.初值:有值的表达式(具体的自变量或者是其他已经声明过的变量)
注意:变量只有在赋完值后才能使用(只能声明后才能使用)
# 将变量student_name中的值,赋给new_name
new_name = student_name
# print(new_name2) NameError: name 'new_name2' is not defined
- 测试代码:
# 声明一个变量number并且赋值为100
number = 100
print(number)
# True = 12.5 SyntaxError: can't assign to keyword
# 1abc = True SyntaxError: invalid syntax
# 声明一个变量student_name,赋值为'小明'
student_name = '小明'
print(student_name)
# 注意:虽然int、float、bool等不是关键字,但在需要命名的时候,最好不用他们来命名,否则会改变它们原来的功能
# int = 100
# print(int)
# int(89.9)
-
测试结果:
- 附:声明完的变量可以重新赋值,重新赋值后,新的值会覆盖原来的值
student_name = '小花'
print(student_name)
# 注意:在Python中,同一个变量可以存储不同类型的值
student_name = 100
print(student_name)
3.多变量声明
方法:
变量名1=变量名2=变量名3... = 初值测试代码:
a = b = c = 123
print(a,b,c) #print同时打印多个数据,多个数据之间用逗号隔开
-
测试结果:
4.声明变量区别
- C/Java声明变量:类型 变量名 = 初值
int a = 10;
a = 100;
开辟4个字节的内存空间a,将10放进去,重新赋值的时候,修改空间内的值 - Python声明变量:变量名 = 初值
a = 10
a = 100
在内存中开辟空间把10存起来,用a将内存空间命名,重新赋值的时候,再开辟空间把100存起来,重新用a命名 - 附:不同的类型,在内存中存储的时候所占的内存不一样
五、运算符
1.运算符类型
- 分类:
- 数学运算符
- 比较运算符,
- 逻辑运算符,
- 赋值运算符,
- 位运算
2.数学运算符
- 分类:
符号 | 意义 |
---|---|
+ | 求和 |
- | 求差 |
* | 求积 |
/ | 求商 |
% | 求余 |
// | 整除 |
** | 幂运算 |
- 测试代码:
# a.+:求和,和数学中的功能一模一样
print(100 + 10)
print(-100 + 10)
print(12.5 + 3.14)
# b.-:求差,和数学中的功能一模一样
result = 99-23
print(result) #将99-23的结果赋给变量result
# c.*:求乘积,和数学中的功能一模一样
print(1.23 * 3)
print(-1.23 * 2)
print(-1.23 * -2)
# d./:求商,和数学中的功能一模一样
# 注意:和C语言中的/不一样
print(5/2)
print(12.5/5)
# e.%取余:求余数
# 注意:Python中小数和整数都可以求余数
print(5%2)
print(6%2)
print(5.5%0.3)
# f.//整除:,求商,结果只取整整数部分
print(5//2)
print(6.4//2)
# g.**幂运算:求幂
# x ** y :求x的y次方
# 技巧:可以通过设置y的值来实现开方
print(2**3)
print(100*0.5)
-
测试结果:
3.比较运算符
- 分类:
符号 | 意义 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
附:所有比较运算的结果是布尔值:True/False
测试代码:
print(100 > 10)
print(100 < 10)
print(12.5 == 12.5)
print(10 == 12.5)
number = 10
print(number == 10) #False
print(number)
print(number != 100) #True
print(100 >= 100) #True
print(10<11) #True
print(10<=10) #True
-
测试结果:
4.逻辑运算符
- 分类:
符号 | 意义 |
---|---|
and | 且 |
or | 或 |
not | 非 |
介绍:
a.值1 and 值2:两个都为True,结果才是True,否则都是False,相当于生活中的并且(要求多个条件同时满足时,使用and连接)
b.值1 and 值2:两个都为False,结果才是False,否则都是True,相当于生活中的或者(要求多个条件有一个满足时,使用or连接)
c.not 值:值取反(True -> False;False -> True),相当于生活中的不是(否定某个条件的时候使用not)测试代码:
a.值1 and 值2:两个都为True,结果才是True,否则都是False,相当于生活中的并且
print('=====================================')
print(True and True) #True
print(True and False) #False
print(False and True) #False
print(False and False) #False
# 练习:获得奖学金的条件:要求绩点在3.5以上,并且操评分在90分
grade = 2.8
score = 95
# 条件一:
grade > 3.5
# 条件二:
score > 90
# 两个条件同时满足
print(grade > 3.5 and score > 90)
# b.值1 and 值2:两个都为False,结果才是False,否则都是True,相当于生活中的或者
print('=====================================')
print(True or True) #True
print(True or False) #True
print(False or True) #True
print(False or False) #False
# 练习:是否穿毛衣出门:温度低于20度,或者风度高于5级
temperture = 18
wind_speed = 4
# 条件一:
condition1 = temperture < 20 #condition1 = True
# 条件二;
condition2 = wind_speed > 5 #condition2 = False
print(condition1 or condition2)
# c.not 值:值取反(True -> False;False -> True),相当于生活中的不是
age = 18
# 条件:年龄不大于18
print(age <= 18)
print(not age > 18)
-
测试结果:
- 附:Python中and和or会有短路现象
- and的短路现象:值1 and 值2 -->一旦确定值1的值是False,就不会执行判断值2
- or的短路现象:值1 or 值2 -->一旦确定值1的值是True,就不会执行判断值2
5.赋值运算符
- 分类:
符号 | 意义 |
---|---|
= | 等于 |
+= | 求和等于 |
-= | 求差等于 |
*= | 求积等于 |
/= | 求商等于 |
%= | 求余等于 |
//= | 整除等于 |
**= | 幂运算等于 |
- 附:赋值运算符的左边必须是变量,在赋值的时候是先算赋值符号右边的结果,然后再将结果赋给左边的变量
测试代码:
# 100 = 100 SyntaxError: can't assign to literal
result = 10 > 100
print(result)
# a.=:单纯的将右边的值赋给左边
num1 = 100
# b.+=,-=,*=,/=,%=,//=,**=:要求左边的变量本身必须是有值的
# 变量1 += 值 -->变量1 = 变量1 + 值
num2 = 100
num2 += 10
print(num2)
num3 = 4
num3 *= 2
print(num3)
*测试结果:
6.运算符的优先级
优先级:数学运算符((幂运算>乘、除、取整、取余>加、减)>比较运算符>逻辑运算符>赋值运算符
计算方法:先计算优先级高的,优先级相等,从左往右依次运算,如果有括号优先计算括号里的
测试代码:
print((100 > 200) - 50 * 3)
-
测试结果:
作业
1.写代码获取数字1234中的十位上和百位上的数字
解答:
number = 1234
print(number//10%10)
number = 1234
print(number//100%10)
2.如果变量n的值是6784, 以下表达式的结果是多少?
- n / 1000 % 100
- n % 1000 / 100
- n // 100 % 10
- n // 10 % 100 // 10
- 解答:
- n/1000%100
=6.784%100
=6.784 - n%1000/100
=784/100
=7.84 - n//100%10
=67%10
=7 - n//10%100//10
=678%100//10
=78//10
=7
*代码验证:
- n/1000%100
print(6784 / 1000 % 100)
print(6784 % 1000 / 100)
print(6784 // 100 % 10)
print(6784 // 10 % 100 // 10)
3.表达式 10 / 4 + 23 // 4 * 2 - 30 的结果是多少?
- 解答:
10/4+23//42-30
=2.5+52-30
=-17.5 - 代码验证:
print(10 / 4 + 23 // 4 * 2 - 30)
4.写出下面每一行中n3的结果:n1 = 4; n2 = 5
- n3 = n1 >n2
- n3 = n1<n2
- n3 = n1==4
- n3 = n1!=4
- n3 = n1 == 1+3
- 解答:
- n3=n1>n2
->n3=4>5
->n3=Flalse - n3=n1<n2
->n3=4<5
->n3=True - n3=n1==4
->n3=True - n3 = n1!=4
->n3=4!=4
->n3=Flalse - n3=n1==1+3
->n3=n1==4
->n3=True
- n3=n1>n2
- 代码验证:
n1 = 4
n2 = 5
n3 = n1 > n2
n4= n1 < n2
n5 = n1 == 4
n6 = n1 != 4
n7 = n1 == 1+3
print(n3,n4,n5,n6,n7)
5.写出以下代码执行完成后,num的结果
num = 10
num /= 2
num += 10 * 10 / 4 + 23*2
- 解答:
num = 10
num /= 2
num += 10 * 10 / 4 + 23*2
6.下面定义变量正确的是()
a. a = b = c = 10
b. a, c = 10
c. in = 20
d. num = 10; t = 20
- 解答:
AD
B:'int' object is not iterable
C:invalid syntax