面向Python,面向对象(基础)

660 阅读11分钟

1.计算机组成

计算机由硬件系统与软件系统组成。

计算机硬件系统包含:

  • 运算器:CPU内计算的硬件
  • 控制器:CPU内用于控制部件工作
  • 存储器(内存储器(内存条)/外存储器(U盘))
  • 输入设备:鼠标,键盘等
  • 输出设备:显示屏等

计算机软件系统包含:

  • 系统软件:Windows、Linux、Unix等
  • 应用软件:QQ、Word等

2.Python语音

Python语言是一种面向对象的解释型计算机程序设计语言。

Python语言创始人为吉多•范罗苏姆(Guido van Rossum)

Python语言的特点

优点:

简单、易学、免费、开源、高层语言、可移植性、解释性、面向对象、可拓展性、丰富的库、规范的代码等。

缺点:

运行速度慢、目前国内市场小、中文资料匮乏、构架选择太多等。

基础语法

1. 注释

1.1 单行注释

语法格式: #[空格]说明性文字信息

添加快捷键: Ctrl+/

取消快捷键: Ctrl+/

1.2 多行注释

语法格式: """说明性文字信息"""

快捷键:<无>

1.3 工作日志说明

语法格式: # TODO 说明文字

快捷键:<无>

1.4 注释的使用场景

  • 添加说明性的文字
  • 调试程序,将制定代码行的功能取消,使其在代码中不生效
  • 记录工作日志,方便信息查找

2. pycharm中提示性信息

  • 语法错误:文字底部红色波浪线
  • 语法不符合规范:文字底部灰色波浪线
  • 单词拼写提示:文字底部绿色波浪线

3. 算数运算符

3.1 算数运算符

符号 作用 说明
+ 计算两个数的和
- 计算两个数的差
* 计算两个数的乘积
/ 计算两个数的商
// 整除 两个整数相除后,取结果的整数部分
% 取余 两个整数相除后,取结果的余数部分
** 乘方 计算a的b次方

3.2 算术优先级

  • 乘方 > 乘、除、整除、取余 > 加、减
  • 相同等级的运算顺序为从左到右
  • 可以使用括号改变运算顺序

4. 关键字

4.1 概念

关键字是python中已占用,具有特殊含义的符号

4.2 关键字表

and as assert break
class continue def del
elif esle except finally
for from global if
import in is lambda
nonlocal not or pass
raise return try while
with yield False None
True

5. 标识符

5.1 概念

标识符是指用来标识某个实体的符号

5.2 标识符规范

1.只能由数字,字母,_(下划线)组成
2.不能以数字开头
3.不能是关键字
4.区分大小写

5.3 命名约束

  • 下划线分割法(推荐):first_name
  • 驼峰命名法:首字母大写,或每个单词首字母大写

6.变量

6.1 变量概念

变量用于描述计算机中的数据存储空间

6.2 变量作用

在计算机内存中保存数据

6.3 变量语法格式

定义变量: 变量名 = 值

使用变量: 变量名

6.4 特殊使用格式

a = b = 1 相当于 b = 1 , a = 1

7. 变量的类型

7.1 变量类型

名称 中文名称 作用
int 整型 表示所有整数
float 浮点型 表示所有的小数
bool 布尔型 表示逻辑值
str 字符串 表示字符串信息

7.2 变量类型获取

使用type(数据)即可获取数据对应的类型

7.3 注意事项

变量的类型在变量使用过程中随时发生改变,以最后一次执行=操作的结果为准

8. 赋值运算符

8.1赋值运算符

符号 作用 格式
= 赋值 a=b,将b的值给a
+= 加后赋值 a+=b,将a+b的值给a
-= 减后赋值 a-=b,将a-b的值给a
*= 乘后赋值 a*=b,将a*b的值给a
/= 除后赋值 a/=b,将a/b的值给a
//= 整除后赋值 a//=b,将a//b的值给a
%= 取余后赋值 a%=b,将a%b的值给a
**= 次方后赋值 a**=b,将a**b的值给a

8.2 注意事项

  • 基本赋值运算=操作,左侧只能是变量,右侧可以是任意数据或变量
  • 特殊赋值运算的左侧只能是变量,右侧可以是变量,也可以是数字

9. 字符串运算

9.1 字符串连接运算

字符串之间可以使用+运算符完成多个字符串之间的拼接操作

9.2 字符串反复连接运算

字符串可以使用*运算符完成单个字符串的连续拼接操作

9.3 注意事项

字符串连接运算+不能在字符串类型与其他类型间进行操作

案例:计算圆的面积

"""
案例:计算圆面积
圆面积 = 圆周率 × 半径的平方
分析:
半径需要设置变量        r
圆周率需要设置变量      pi
计算结果圆的面积需要设置变量  area
"""
# r表示半径
r = 3.5
# pi表示圆周率
pi = 3.14
# area表示面积
area = pi * r ** 2

print(area)

10. 标准输入输出

10.1 输入

10.1.1 语法格式

格式一: input()

格式二: input(“提示信息”)

10.1.2 输入数据的接收

格式一:变量 = input()

格式二:变量 = input(“提示信息”)

10.1.3 注意事项

控制台执行到input()操作后,会将程序挂起,等待用户输入数据,在用户未完成数据输入之前,程序不向下执行,一旦控制台接收到用户输入的数据后,继续向下执行

10.2 输出

10.2.1 语法格式

格式一:直接输出变量 print(变量)

格式二:输出包含单个占位符字符串的信息 print(“包含1个占位符的格式化字符串” % 变量 )

格式三:输出包含多个占位符字符串的信息 print(“包含多个占位符的格式化字符串” % (变量1,变量2,…) )

10.2.2 输出占位符

10.3 数据类型转换

10.3.1 输入数据的类型

input函数接收的数据默认为字符串类型

10.3.2 转换函数

通过转换函数实现接收其他类型的数据

1.接收整数:字符串→整型数据: int(“整数格式的字符串”)

2.接收小数:字符串→浮点型数据:float(“小数格式的字符串”)

10.3.3 注意事项

1.字符串类型数据可以转换成其他类型数据,但是数据必须是可转换的。 例如:“123”可以转化成123 例如:“23x”不可以转化

2.整型(int)数据可以转换成浮点型(float)数据,在原始整型数据后面补.0 例如:123可以转化成123.0

  1. 浮点型(float)数据无法转换成整型(int)数据,无论原始数据是不是整数 例如:123.0不可以转化成123

案例:计算圆面积(输入输出版)

"""
完成“输入输出”版计算圆面积程序
需求:
    1.圆的半径需要通过键盘录入,半径值必须兼容小数
    2.输出格式:半径为10的圆形面积为314。
分析:
    1.input 最终类型要使用float
    2."半径为%.2f的圆形面积为%.4f。"
"""
# 定义圆周率
pai = 3.14
# 从键盘录入半径值
r = float(input("请输入您要计算的圆的半径值(最多2位小数):"))
# 计算圆的面积
area = pai * r ** 2
#格式化输出
print("半径为%.2f的圆形面积为%.4f。" % (r , area))

11. 分支语句

11.1 比较运算符

比较运算是发生在两个同类型数据间的一种操作,比较运算是使用固定的比对规则对两个数据进行比对,如果比较运算式子成立得到结果True,如果不成立,得到结果False

11.1.1 常用的比较运算符

符号 说明
= = 判断两个操作数的值是否相等,成立为True
!= 判断两个操作数的值是否不相等,成立为True
> 判断左操作数是否大于右操作数,成立为True
< 判断左操作数是否小于右操作数,成立为True
>= 判断左操作数是否大于等于右操作数,成立为True
<= 判断左操作数是否小于等于右操作数,成立为True

11.1.2 字符进行比较运算的排序规则

0..数字..9 < A..大写字母..Z < a..小写字母..z

11.1.3 字符串比较运算规则

1.对两个字符串中对应位置每个字符逐一比对

2.排序较小的整体字符串值小

3.如果比较结果相等,比较下一个字母

4.直到比对到最后一个字母

5.若比对的一方没有字符,则整体字符串值小

11.2 关系运算符

11.2.1 关系运算

关系运算是发生在两个布尔型数据间的一种操作,关系运算是根据固定规则对两个布尔值进行运算,最终结果是布尔值

11.2.2 常见的关系运算符

and:表示两个布尔值之间的并且关系,例如 True and False

or:表示两个布尔值之间的或者关系,例如 True or False

not:表示一个布尔值的反向对立关系,例如 not False

11.2.3 真值表

and True False
True True False
False False False

逻辑与:同真则真

or True False
True True True
False True False

逻辑或:同假则假

True False
not False True

逻辑非:非真即假,非假即真

11.2.4 注意事项

1.数字可以作为关系运算的数据进行运算,0表示False,非0表示True

2.数字与布尔值混用出现在关系运算中时,任意操作数可以决定整个式子值的,最终结果即为该操作数(参看真值表)

例如:True and 0	→ 0 
例如:0 and True	→ 0
例如:4 or False	→ 4
例如:False or 4	→ 4

3.数字与布尔值混用出现在关系运算中时,如果两个操作数都无法单独决定整个式子值的(参看真值表),最终结果即为后面的操作数

例如:True and 10	→ 10 
例如:10 and True	→ True
例如:False or 0	→ 0
例如:0 or False	→ False

11.3 分支语句

11.3.1 概念

分支语句: 计算机三种基础语句(顺序、分支、循环)之一,用于描述“如果满足什么条件,就怎么样,否则就怎么样”的语法。

11.3.2 语法格式

格式一: if 条件: 条件成立执行的代码

格式二: if 条件: 条件成立执行的代码 else: 条件不成立执行的代码

格式三: if 条件1:

	    条件1成立执行的代码

elif 条件2:

    	条件2成立执行的代码

elif 条件3:

    	条件3成立执行的代码

else:

        条件都不成立执行的代码
score = 73
if score == 100:
    print("买自行车")
elif score >= 95 and score < 100:
    print("去游乐场玩")
elif score >= 90 and score < 95:
    print("买大玩具")
elif score >= 80 and score < 90:
    print("不奖不罚")
else:
    print("小心屁屁")
print("结束")

11.3.3 执行流程

1.if语句执行流程

2.if..else..语句执行流程

3.if..elif..else..语句执行流程

11.3.4 分支嵌套

分支嵌套即分支语句的执行代码中包含全新的分支语句结构

11.4 代码书写规范(了解)

11.4.1 超长行处理方案

方案一:换行处使用\

方案二:对整体添加(),()中随意换行

案例:减肥计划

"""
案例:减肥计划
要求:输入星期数,显示今天的减肥活动
   周一:跑步       周二:游泳     周三:健身房
   周四:动感单车   周五:拳击     周六:爬山
   周日:好好吃一顿
"""
# 分析
# 1.键盘输入一个数字,表示今天是星期几。int str?都可以
# 2.分7种情况,选择if..elif..else语法结构,写6个条件,最后一个用else
# 3.每种情况中按照要求打印即可

week = int(input("请输入今天星期几:"))
if week == 1:
    print("跑步")
elif week == 2:
    print("游泳")
elif week == 3:
    print("健身房")
elif week == 4:
    print("动感单车")
elif week == 5:
    print("拳击")
elif week == 6:
    print("爬山")
else:
    print("大吃一顿")

案例:外卖结算

"""
案例:外卖结算
要求:满30减10块,满50减20,满100减50,会员折上再8折。
"""
# 分析
# 1.输入的数据有两个,1是价格(小数),2是会员资格(布尔)
# 2.满减活动分4种情况,选择if..elif..else结构
# 3.在每种情况中做一件事,就是价格发生变化
price = float(input("请输入您的总价:"))
member = input("请输入您是否是会员(是/否)")
if price >= 100:
    price -= 50
elif price >= 50:
    price -= 20
elif price >= 30:
    price -= 10
if member == "是":
    price *= 0.8
print("您最终需要支付%0.2f元" % price)