Python 简介、
Python 简介、
编程:
编写程序。
程序(软件):
一组由计算机执行的指令(代码)
操作系统:
隔离程序与硬件的差异,使程序开发简单化。
Windows/Linux/Unix
-
定义
是一个免费,开源,跨平台,动态,面向对象的编程语言。
-
Python程序执行方式
交互式 定义:在命令行输入指令,回车即可得到结果。 步骤: 1. 打开终端 2. 输入:python3 3. 输入: print(“Hello World”) 4. 退出:exit() 文件式 定义:将指令编写到.py文件中,可以重复运行程序。 步骤: 1. 创建文件: /home/tarena/1902/month01/day01/hello.py 2. 打开终端进入指定目录 cd /1902/month01/day01 3. 运行python程序 python3 hello.py
-
Linux常用命令
pwd: 查看当前工作路径 cd: 进入目录 ls:查看当前目录中的文件 … 其他的暂时Python用不到,
-
练习1:
创建python程序,输出你好,世界! 通过文件式执行。
-
程序执行过程
由源代码转换为机器码的过程,分为编译和解释。
-
编译:
在程序执行之前,通过编译器将源代码转换为机器码。 -- 特点:运行时,计算机可以直接执行。例如:c语言 -- 优势:运行速度快。 -- 缺点:不能跨平台,开发效率低。
-
解释:
在程序执行中,通过解释器将源代码转换为机器码。 -- 特点:运行时逐语句解释执行。 -- 优点:可以跨平台,开发效率高。例如:JavaScript -- 缺点:运行效率低。
-
python执行过程:
源代码 –编译--> 字节码(特定python的表现形式.pyc) –解释--> 机器码 |—————————1次—————————————|
-
Python 版本
python 2.7(2020年结束维护) python 3.5(教学版本) python 3.8(最新) Python 解释器类型 CPython(c语言开发) Jython(Java开发) IronPython(.Net开发) 数据基本运算 pycharm 快捷键
格式化代码 ctrl+alt+L
运行 shift+ctrl+f10
复制行 ctrl+d
注释 ctrl+/
-
注释
定义:给人看的,描述代码的文本。 -- 单行注释: # 内容 -- 多行注释: “”” 内容 “””
-
函数
表示一个功能,制作函数的人叫做函数定义者,使用函数的人叫做函数调用者。
print(数据):将括号里面的数据,显示到控制台中。
变量 = input(“提示信息”):将用户在控制台中输入的内容赋值给变量
-
day01作业:
练习1:在控制台中录入学生信息(姓名,年龄,性别,成绩。。。) 在控制中显示学生信息。 格式:xx的年龄是xx,性别是xx,成绩是xx。 代码:day02/day01_exercise/exercise01.py 练习2:看看教程 www.runoob.com 练习3:逛逛社区 www.pythontab.com
变量
-
代码:
""" 变量 """ a = 500 b = 600 c = a + b a = 800 d = e = 1000 f, g = 101 print(f) # 10 print(g) # 20 # class = 1902 # 关键字 # 01_class = 1902 # 数字开头 class01 = 1902
-
定义:
关联一个对象的标识。
-
命名:
-- 必须为字母数或下划线,后面跟着字母,数字,下划线。 -- 不能使用保留关键字
-
建议命名:
见名知意 字母小写,多个单词用下划线隔开。 例如: class_name student_name
-
语法:
变量名 = 表达式 变量名1 = 变量名2 = 表达式 变量名1,变量名2 =表达式1,表达式2
-
练习1:
画出下列代码内存图 a =”我” b = “爱” a =”python” d = a + b
-
练习2:
在控制台中依次获取两个变量,然后交换变量, 输出结果。 例如:请输入第一个变量:100 请输入第二个变量:200 …. 第一个变量是:200 第二个变量是:100
-
数据类型
-
代码:
""" 数据类型 """ # 1. 整形 # 二进制 0 1 2 3 4 print(0b0,0b1,0b10,0b11, 0b100) # 八进制 0 7 8 9 print(0o0,0o7,0o10,0o11) # 十六进制 0 10 161 print(0x0,0xa,0xa1) # 2. 浮点型 # 1.5 --> 150.0 print(1.5e2) # 1.5 -->0.015 print(1.5e-2) # 3. 字符串 str01 = '我爱python' str01 = "我爱python" str01 = '''我爱python''' str01 = """我爱python""" # 类型转换 a = 10 re1 = "变量是:"+str(a) t1 = type(a) t2 = type(re1) print(t1,t2) print(re1)
变量没有类型,关联的对象有类型。
可以通过type方法,判断对象的类型。
语法:变量 = type(数据) -
-
None
表示不存在的特殊对象 作用:用来占位 a = None 变量解除绑定
-
整形int
整数。包含正数,负数,0. 字面值: --- 十进制:100,-5, 0 --- 二进制(0,1):0b0,0b1,0b10,0b11, 0b100 --- 八进制(0-7):0o0,0o7,0o10 --- 十六进制(0-9,a-f):0x0,0xa
小整数对象池:CPython中整数-5 到 256,永远存在小整数对象池中,不会释放。
对象池:缓存的机制。
-
浮点型float
小数,包含正数,负数,0.0 字面值: --- 小数:1.5 --- 科学计数法:1.5e1 0.5e-1
-
字符串str
用于记录文本信息。 字面值:单引号 双引号 三引号
-
布尔bool
True 表示真(成立) False 表示假(假的)
-
复数complex
由实部和虚部组成的数字。 虚部以j或J结尾 字面值: 5 + 3j 5j
-
数据类型转换
转换为整形:int(数据) 转换为浮点型:float(数据) 转换为字符串:str(数据) 转换为布尔:bool(数据) False : 0 ,0.0 , “” ,None True: 有值
-
运算符
-
算数运算符
+ 相加 - 相减 * 相乘 / 小数除 // 底板除(向下取整) % 取余数 ** 幂运算
-
-
代码:
""" 算数运算符 """ # 算数运算符 num01 = 6 num02 = 2 # / 结果是float类型 re01 = num01 / num02 print(re01) # 2.5 # // 商向下取整数 re01 = num01 // num02 print(re01) # 2 # % 取余数 re01 = num01 % num02 print(re01) # 1 # 作用1:一个数能否被另外一个数整除 # num01 num02 re01 = num01 % num02 == 0 print(re01) # 作用2:求整数的个位 num03 = 15 re01 = num03 % 10 print(re01) # 5 re01 = num03 // 10 print(re01) # 1 # 5 * 5 print( 5 ** 2) # 25 # 5 * 5 * 5 print( 5 ** 3) # 125
-
增强运算符
x += 1 等同于 x = x + 1 -= *= /= //= %= **= 在变量基础上进行操作
-
代码:
""" 增强运算符 """ a = 5 b = a + 1 print(a) # 5 # a = a + 1 # 6 a += 1 # 累加 个位 十位 百位 ... number = int(input("输入4位整数")) result = number % 10 # 个位 result += number // 10 % 10 # 十位 1234 // 10 --> 123 result += number // 100 % 10 # 百位 1234 //100 ->12 result += number // 1000 print(result)
-
比较运算符
> < == 等于 >= <= != 不等于 结果是bool类型
练习1:在控制台中依次获取小时,分钟,秒,
计算总秒数。
答案:
"""
小时/分钟/秒 --> 总秒数
"""
str_hour = input("请输入小时数:")
hour = int(str_hour)
minute = int(input("请输入分钟数:"))
second = int(input("请输入秒数:"))
result = hour * 3600 + minute * 60 + second
print(result)
练习2:在控制台中获取一个4位整数,
计算每位相加和。
例如:1234
1 + 2+3+4
答案:
"""
在控制台中获取一个4位整数,
计算每位相加和。
"""
number = int(input("输入4位整数"))
unit01 = number % 10 # 个位
unit02 = number // 10 % 10 # 十位 1234 // 10 --> 123
unit03 = number // 100 % 10 # 百位 1234 //100 ->12
unit04 = number // 1000 + "a"
result = unit01 + unit02 + unit03 + unit04
print(result)
# 调试
# 1. 加断点(程序运行到本行停止,没有执行本行)
# 2. 开始调试shift+alt+f9
# 3. 逐行执行 F7
# 4. 停止调试ctrl + f2
- 逻辑运算符
-
与 and
表达并且,一假俱假。 re = True and True # True re = False and True # False re = True and False # False re = False and False # False
-
或 or
表达或者,一真则真 re = True or True # True re = False or True # True re = True or False # True re = False or False # False
-
取反 not
re = True re = not re print(re) # False
-
作用
比较两个bool值关系。
-
练习:在控制台中输入一个年份
判断是否为闰年
条件1:年份能被4整除,但是不能被100整除
条件2:年份能被400整除
- 身份运算符
代码:
"""
身份运算符
"""
a = 500
b = 600
c = a
re01 = a is b
re02 = a is c
print(re01) # False
print(re02) # False
# id函数返回变量所关联的对象地址
print(id(a),id(b),id(c))
# 文件式python对一下代码做了优化
# 优化:创建一个800对象
# 交互式python中就是2个对象
num01 = 800
num02 = 800
print(id(num01),id(num02))
print(num01 is num02)# true
is : 判断两个对象是否为一个对象
is not:与is相反
-
语法:
变量 = 变量1 is 变量2 结果是bool类型
-
优先级
从高到低: 算数运算符 比较运算符 增强运算符 逻辑运算符 小括号最高 (1 + 2) * 5
-
调试步骤
目的: 1. 理解程序执行过程 2. 排除逻辑错误(不是Error) 1. 加断点(程序运行到本行停止,没有执行本行) 2. 开始调试shift+alt+f9 3. 逐行执行 F7 4. 停止调试ctrl + f2 错误信息 File "/home/tarena/1902/month01/day02/exercise03.py", line 10, in <module> unit04 = number // 1000 + "a" TypeError: unsupported operand type(s) for +: 'int' and 'str'
File “文件路径”, line 行号, in
-
错误代码
XXXError: 错误描述
-
作业:
使用二进制输出1 3 5 八进制 1 8 10 十六进制 1 13 20 在控制台中获取圆形的半径, 输出面积(3.14 * r 的平方)与周长(2 * 3.14 * r) 在控制台中输入总秒数,计算几小时零几分钟零几秒钟。 读书:Python编程:从入门到实践 第二章