v>
软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
/ 除 10 / 20 = 0.5
// 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4
% 取余数 返回除法的余数 9 % 2 = 1
** 幂 又称次方、乘方,2 ** 3 = 8
复合赋值运算符
运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 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
注意:
1. 数字和数字之间可以进行所有的运算
2. 数字和字符串之间只能进行乘法运算.
3. 字符串和字符串之间可以进行加法运算.
2.2.4 变量的输入和输出
输入和输出, 都是相对于程序而言的. 输入和输出, 简称 I/O(input/output)
1. 从键盘读取数据到程序中, 并且从程序中将数据显示到屏幕, 叫做标准输入和输出.
2. 从文件读取数据到程序中, 并且从程序中将数据存储到文件, 叫做文件输入和输出.
3. 从网络读取数据到程序中, 并且从程序中将数据发送到网络, 叫做网络输入和输出.
21软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
我们本小节学习标准输入和输出. 我们知道数据的接收和发送需要依赖于计算机操作系统来控制硬件设备来完成, 内
部实现机制很复杂, 但 Python 将这些复杂的步骤封装起来, 给了我们一种极其简单的实现方式. 通过调用 print 函数
和 input 函数来完成.
函数, 可以理解为封装了某一个功能, 我们不必关心功能如何实现, 只需要怎么使用即可.
2.2.4.1 print 函数使用
print 用于向屏幕输出数据. 分为普通输出和格式化输出.
1. 普通输出变量
# 定义一个整数类型变量
my_number = 100
# 定义一个字符串类型变量
my_string = 'hello itcast'
# 输出两个变量
print(my_number)
print(my_string)
注意: 变量名不能加引号
2. 格式化输出变量
格式化输出就是让数据按照一定的格式输出, 例如: 我的名字是xxx.
进行格式化输出的流程;
1. 先定义输出格式.
2. 在格式中填充数据.
案例: 已知有数据: name = '司马二狗', age = 30, salary = 19988.78, 请按照 "我的名字是xxx, 我的年龄是xxx, 我
的工资是xxx" 的格式将变量输出.
定义输出格式, 需要用到格式化占位符. 用来暂时替代不确定的值.
% 被称为 格式化操作符,专门用于处理字符串中的格式
包含 % 的字符串,被称为 格式化字符串
% 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符
常用格式化字符 含义
%s 字符串
%d 有符号十进制整数, %06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f 浮点数, %.2f 表示小数点后只显示两位
%% 输出 %
# 定义名字、年龄、工资变量
name = '司马二狗'
age = 30
salary = 19988.78
# 格式化字符串
format_string = '我的名字是%s, 我的年龄是%d, 我的工资是%.2f' % (name, age, salary)
# 输出格式化后的字符串
22软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
print(format_string)
3. 格式化输出练习
1. 定义字符串变量 name ,输出 我的名字叫 小明,请多多关照!
2. 定义整数变量 student_no ,输出 我的学号是 000001
3. 定义小数 price 、 weight 、 money ,输出 苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元
print("我的名字叫 %s,请多多关照!" % name)
print("我的学号是 %06d" % student_no)
print("苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
2.2.4.2 input 函数使用
input 函数主要用于从键盘获取数据. 但是需要注意的是, 无论我们输入的数据是小数、整数、还是字符串, 该函数
统统当做字符串类型来获取.
# 获得键盘输入
your_name = input('请输入您的名字:')
# 输出内容
print(your_name)
input 函数获得键盘输入内容, 并将内容存储在 your_name 变量中.
课堂练习-个人名片
在控制台依次提示用户输入:姓名、公司、职位、电话、邮箱
按照以下格式输出:
**************************************************
公司名称
姓名 (职位)
电话:电话
邮箱:邮箱
**************************************************
实现代码如下:
"""
在控制台依次提示用户输入:姓名、公司、职位、电话、电子邮箱
"""
name = input("请输入姓名:")
company = input("请输入公司:")
title = input("请输入职位:")
phone = input("请输入电话:")
email = input("请输入邮箱:")
print("*" * 50)
print(company)
print()
print("%s (%s)" % (name, title))
print()
print("电话:%s" % phone)
print("邮箱:%s" % email)
23软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
print("*" * 50)
2.2.5 变量的类型转换
什么叫做变量类型转换?
变量类型转换就是将变量的类型由一种类型转换为另外一种类型, 例如将变量从数字类型转换为字符串类型.
为什么需要类型转换呢?
由于各种原因, 我们在拿到数据之后, 数据的类型和我们的预期不相符, 导致我们无法进行相关的计算(数据类型决定
了数据之间的运算规则). 此时我们需要先将数据的类型转换为我们预期的类型, 再进行计算.
我们下面通过一个案例, 来理解类型转换的作用.
我们现在完成一个计算器案例, 要求用户输入左操作数和右操作数, 并对两个数进行加法计算, 输出计算结果.
# 输入左操作数
left_number = input('请输入一个数字:')
# 输入有操作数
right_number = input('请输入一个数字:')
# 对两个数进行加法计算
result = left_number + right_number
# 输出计算结果
print('计算结果是:', result)
运行结果可能不是我们的预期, 因为 input 接收的任何数据都当做了 str 类型来处理. 此时如果想要进行数值运算, 就
必须将字符串转换为数字类型, 再进行计算. 因为类型不同, 运算规则不同.
我们可以使用以下函数完成变量类型的转换:
1. int(val), 将变量 val 转换为 int 类型.
2. float(val), 将变量 val 转换为 float 类型.
3. str(val), 将变量 val 转换为 str 类型.
代码修改如下:
# 输入左操作数
left_number = input('请输入一个数字:')
# 输入有操作数
right_number = input('请输入一个数字:')
# 将字符串类型变量转换为数字类型
left_number_int = int(left_number)
right_number_int = int(right_number)
# 对两个数进行加法计算
result = left_number_int + right_number_int
# 输出计算结果
print('计算结果是:', result)
2.2.6 小结
1. 变量是在程序运行过程中临时保存所需要的数据.
2. 变量的名字规则. 2.1 标识符由字母、下划线和数字组成,且数字不能开头. 2.2 python中的标识符是区分大小
写的. 2.3 变量名一般用小写加下划线组成. 2.4 不能和关键字和已有的名字冲突.
3. 变量的类型决定了变量之间的运算规则. 3.1 字符串和字符串只能进行加法运算, 拼接字符串. 3.2 数字和数字之
间可以进行所有的数学运算. 3.3 数字和字符串之间只能进行乘法运算, 复制指定次数字符串.
24软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
4. Python常见的变量类型有: 数字类型、字符串类型、布尔类型.
5. Python中的输入和输出分为: 标准输入和输出、文件输入和输出、网络输入和输出.
6. print 是标准输出函数, 用于向屏幕打印数据.
7. input 是标准输入函数, 用于获得键盘输入的数据.
8. 在某些情况下, 我们拿到的数据并不是我们预期类型, 此时就需要我们将该数据从一种类型转换成我们预期的类
型, 以便于完成计算. 需要注意的是, 进行类型转换的前提是该类型的数据能够转换为预期类型.
2.3.7 思考
1. "5" 和 5 是等价的吗?
25软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
2.3 分支语句
学习目标:
1. 能够说出 if 分支语句的作用
2. 能够说出 if 语句的语法格式
3. 能够说出什么是 BUG
2.3.1 BUG
BUG 原意为臭虫,在计算机领域,指 导致程序 不能正常执行,或者 执行结果不是预期的 错误. BUG是程序员在
开发时非常常见的,初学者常见错误的原因包括:
1. 手误.
2. 对技术点理解不足.
3. 业务思路不熟练.
在学习语言时,不仅要学会语法,还要学会如何认识和解决错误的方法. 每一个程序员都必备的能力:
1. 编码能力.
2. 解决错误能力.
2.3.2 IF分支语句
先看一个系统登录的案例:
# 请输入您的用户名
username = input('请输入您的用户名:')
# 请输入您的密码
password = input('请输入您的密码:')
# 打印欢迎信息
print('欢迎 %s 登录系统!' % username)
以上的程序在执行过程中, 无论你输入的是什么, 都显示出来欢迎登录系统的信息提示. 实际上, "欢迎登录系统" 这
个提示信息是否要打印出来, 取决于用户名和密码是否正确, 也就是说代码要有选择性的去执行, 而不是最开始无论
你写了多少行代码, 都会执行.
如何在程序中, 实现这种有选择的执行某些特定代码呢?
使用 if 分支语句.
2.3.2.1 if 分支语法
1. 单个分支语法格式
if 条件一:
执行一行或多行特定代码
如果条件成立则执行 if 下面的代码, 不成立则不会执行.
案例代码:
26软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
a = 10
if a > 5:
print('a > 5')
2. 两个分支语法格式
if 条件一:
执行一行或多行特定代码
elif 条件二:
执行一行或多行特定代码
如果 if 条件成立, 则执行 if 下面的代码 如果 elif 条件成立, 则执行 elif 下面的代码 如果 if elif 条件同时成立, 则 执行
第一个满足条件的分支
案例代码:
name = 'Obama'
if name == 'Obama':
print('我是 Obama!')
elif name == 'Trump':
print('我是 Trump!')
if 条件一:
执行一行或多行特定代码
else:
执行一行或多行特定代码
如果 if 条件成立, 则执行 if 下面的代码 如果 if 条件不成立, 则执行 else 下面的代码 if 和 else 代码必定会执行其中
一个
案例代码:
name = 'Obama'
if name == 'Obama':
print('我是 Obama!')
else:
print('我是其他人!')
注意: else 后面不需要写条件.
3. 多个分支语法格式
if 条件一:
执行一行或多行特定代码
elif 条件二:
执行一行或多行特定代码
elif 条件三:
执行一行或多行特定代码
elif 条件四:
执行一行或多行特定代码
如果 if 条件成立, 则执行 if 下面的代码 如果 elif 条件成立, 则执行 elif 下面的代码 如果 if elif 条件同时成立, 则 执行
第一个满足条件的分支
27软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
案例代码:
day = input('请输入1-7的数字:')
if day == '1':
print('今天是星期一')
elif day == '2':
print('今天是星期二')
elif day == '3':
print('今天是星期三')
elif day == '4':
print('今天是星期四')
elif day == '5':
print('今天是星期五')
elif day == '6':
print('今天是星期六')
elif day == '7':
print('今天是星期日')
if 条件一:
执行一行或多行特定代码
elif 条件二:
执行一行或多行特定代码
elif 条件三:
执行一行或多行特定代码
elif 条件四:
执行一行或多行特定代码
else:
执行一行或多行特定代码
如果 if 条件成立, 则执行 if 下面的代码 如果 elif 条件成立, 则执行 elif 下面的代码 如果 if elif 都不满足条件, 则执行
else 下面的代码
案例代码:
if day == '1':
print('今天是星期一')
elif day == '2':
print('今天是星期二')
elif day == '3':
print('今天是星期三')
elif day == '4':
print('今天是星期四')
elif day == '5':
print('今天是星期五')
elif day == '6':
print('今天是星期六')
elif day == '7':
print('今天是星期日')
else:
print('无法确定星期几')
2.3.2.2 if 条件成立
分支语句的条件如何表示呢?
成立则表示结果为真(True), 不成立则表示结果为假(False).
分支条件判断的场景一般为: a大于b、a小于b、a等于b、a大于等于b、a小于等于b、a不等于b等等.
28软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
运算符 描述
== 检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!= 检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
> 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
< 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>= 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<= 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True
登录案例的代码可修改为:
# 请输入您的用户名
username = input('请输入您的用户名:')
# 请输入您的密码
password = input('请输入您的密码:')
# 判断密码是否正确
if username == 'admin':
# 再判断密码是否合法
if password == 'admin':
# 打印欢迎信息
print('欢迎 %s 登录系统!' % username)
else:
print('用户名或者密码不正确!')
else:
print('用户名或者密码不正确')
注意: 编写if语句代码时, 注意缩进
2. 多个条件之间的关系
上面代码在 if 语句中又嵌套了一个 if 语句, 能否有更简单的写法呢?
我们可以将多个条件并列写在 if 后面, 此时需要表示多个条件之间的关系, 需要逻辑运算符.
运算符 逻辑表达式 描述
and x and y
只有 x 和 y 的值都为 True,才会返回 True
否则只要 x 或者 y 有一个值为 False,就返回 False
or x or y
只要 x 或者 y 有一个值为 True,就返回 True
只有 x 和 y 的值都为 False,才会返回 False
not not x
如果 x 为 True,返回 False
如果 x 为 False,返回 True
a = 10
b = 20
c = 30
d = 40
# and 两个条件都为真, 则结果为真
result = a > b and c < d
print('result:', result)
# or 有一个条件为真, 则结果为真
result = a > b or c < d
print('result:', result)
29