【软件测试】Python基础知识

  • 以下是软件测试小白关于python基础知识的学习记录。

一、Python介绍

  • python 主要版本:python 2、python 3(主流)。
  • 语言分类:
  1. 编译型语言(c、c++)
    • 需要编译器,对源代码进行编译最终生成可执行文件。
    • 先编译再执行。
  2. 解释型语言(python)
    • 需要解释器,对源代码逐行解释。
    • 边解释边执行。

二、基础语法

2.1 注释

  • 【说明】注释是对代码进行解释说明的文字,不会被执行,便于理解代码。
  • 【分类】
    • 单行注释:只对单行内容起作用,以#开头,快捷键ctrl+/
    • 多行注释:注释的内容可以换行书写,格式为'''注释内容'''"""注释内容"""

2.2 标识符

  • 【说明】标识符是用户编程时使用的名字,用于给变量、函数、类命名。
  • 【规则】
    1. 由字母、数字和下划线组成。
    2. 不能使用数字开头。
    3. 不能使用python内置关键字。
    4. 严格区分大小写。
    5. 不建议使用中文。

2.3 变量

  • 【说明】变量是用来保存数据的,变量必须先定义再使用。
  • 【语法】变量名=数据值
  • 【使用】直接使用变量名即可。
# 定义变量保存名字和年龄
name = "张三"
age = 18
print(name,age)
  • 变量命名规范
    1. 要遵循标识的规则。
    2. 命名习惯
      • 驼峰命名法:
        • 大驼峰:每个单词的首字母大写,例如:MyName;
        • 小驼峰:第一个单词的首字母小写,其余单词首字母大写,例如:myName;
      • 下划线连接:单词与单词之间使用下划线连接。

2.4 数据类型

  • 数字型
    1. 整型(int)
    2. 浮点型(float)
    3. 布尔型(bool)
  • 非数字型
    1. 字符串(string)
    2. 列表(list[])
    3. 元组(tuple())
    4. 集合(set{})
    5. 字典(dict{键值对})
# int 整型,整数
age = 18
# float 浮点型,小数
num = 2.345
# bool 布尔型,关键字True(真)、False(假)
isRight = True
print(type(age),type(num),type(isRight))
  • 数据类型转换
    • 【语法】变量 = 要转换的数据类型(原数据),例如nums = int(num)
    • 数据类型转换不会改变原数据的类型,是生成一个新数据
num = 2.456
print(type(num))
nums = int(num)
print(nums,type(nums))

int(2.45) # 浮点型转整型,去尾。
int('134') # 字符型(只能是整数数字类型)转整型
float(12) # 整型转浮点型
float('12') # 字符型(只能是数字类型)转浮点型
float('1.234')
str(12) # 整型转字符型
str(1.234) # 浮点型转字符型

2.5 输入

  • 使用函数input(),获取键盘的输入信息。
  • 【语法】变量 = input('提示信息')
    1. 代码从上至下执行,当代码执行遇到 input 时会中断执行,等待键盘输入,直到输入完成再次执行。
    2. 在输入过程中,使用回车键表示此次输入结束。
    3. 使用 input 函数获取的内容,都是字符串。
name = input('请输入您的名字:')
age = input('请输入您的年龄:')
print(name,age)

2.6 输出

  • 格式化输出
  1. 字符串.format()
    • 字符串中需要使用变量的地方,用{}进行占位。
    • 在format()括号内,按占位顺序,将变量填写。
name = '张三'
age = 18
sex = '男'
print('姓名:{},年龄:{},性别:{}'.format(name,age,sex))
  1. F-string
    • python 3.6版本以后才可以使用。
    • 在字符串前面加上fF
    • 字符串中需要使用变量的地方,用{}进行占位。
    • 将变量直接写在{}占位符中。
name = '张三'
age = 18
sex = '男'
print(f'姓名:{
     name},年龄:{
     age},性别:{
     sex}')

2.7 转义字符

  • \n:表示换行
  • \t:表示制表符
  • print 函数中默认有一个 end=‘\n’ ,所有每个print结束后会输出一个换行。
print('张三18')
print('张三18',end=' ')
print('\n张三\n18')
print('张三\t18')

2.8 运算符

  • 算术运算符:
    • 优先级(由高到低):() 高于 **,* 高于 /,//,% 高于 +,-
    • 加、减、乘、除:+ - * /
    • 求商://
    • 取余:%
  • 比较运算符:
    • 只能是相同类型之间进⾏⽐较 (数字和字符串之间不能使⽤)
    • 结果返回的值是bool型,要么为True,要么为False。
    • 相等、不相等:== !=
    • 大于、大于等于、小于、小于等于:> >= < <=
  • 赋值运算符:=
  • 复合赋值运算符:
    • 加后赋值:+=
    • 减后赋值:-=
    • 乘后赋值:*=
    • 除后赋值:/=
    • 取余后赋值:%=
  • 逻辑运算符:
    • 与:and,连接两个条件, 只有都为 True, 结果才为 True, ⼀假为假。
    • 或:or,连接两个条件, 只要⼀个条件 为 True, 结果就为 True, ⼀真为真。
    • 非:not,取反,本来是 True, 加上 not 变为False。

2.9 练习

  • 编写一个Python程序,完成以下任务:
  • 输入:
    • 从用户处获取姓名(name)。
    • 从用户处获取年龄(age),使用input()函数,并转换为整型。
    • 从用户处获取身高(height),使用input()函数,并转换为浮点型。
    • 从用户处获取体重(weight),使用input()函数,并转换为浮点型。
  • 计算:
    • 计算用户的BMI(Body Mass Index,身体质量指数),公式为:BMI = weight / (height ** 2)。
    • 根据BMI值判断用户的健康状态:
      • BMI < 18.5: 体重过轻
      • 18.5 <= BMI < 24.9: 体重正常
      • 25 <= BMI < 29.9: 体重超重
      • BMI >= 30: 肥胖
  • 输出:
    • 使用format()方法格式化输出用户的姓名、年龄、身高、体重、BMI值、健康状态。
    • 使用F-string方法再次输出上述信息。
  • 答:
# 输入
name = input('请输入你的姓名:')
age = int(input('请输入你的年龄:'))
height = float(input('请输入你的身高/米:'))
weight = float(input('请输入你的体重/kg:'))
# 计算
BMI = weight / (height ** 2)
if BMI < 18.5:
	health_status = '体重过轻'
elif 18.5 <= BMI < 24.9:
	health_status = '体重正常'
elif 25 <= BMI < 29.9:
	health_status = '体重超重'
else:
	health_status = '肥胖'
# 输出
print('你的信息如下:\n姓名:{}\n年龄:{}\n身高:{}米\n体重:{}kg\nBMI值:{}\n健康状态:{}'.format(name,age,height,weight,BMI,health_status))
print(f'你的信息如下:\n姓名:{
     name}\n年龄:{
     age}\n身高:{
     height}米\n体重:{
     weight}kg\nBMI值:{
     BMI:.2f}\n健康状态:{
     health_status}')

三、逻辑控制语句

3.1 条件分支语句

  • if…else 结构
if 判断条件:
	判断条件成⽴,执⾏的代码
else:
	判断条件不成⽴,执⾏的代码
  1. 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
  2. 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  3. else 不能单独使⽤ 必须配合 if 使⽤, 并且 else 要和 if 对齐。
  • if…elif…else 结构
if 判断条件1:
	判断条件成⽴,执⾏的代码
elif 判断条件2: # 判断条件1不成立,执行判断条件2,依次往下执行
	判断条件成立,执行的代码
......
else:
	判断条件不成⽴,执⾏的代码
  • if 嵌套
  • 把 if…elif…else 结构放在另外一个 if…elif…else 结构中。
if 条件1:
    判断条件成⽴,执⾏的代码
    if 条件2:
        判断条件成⽴,执⾏的代码
    elif 条件3:
        判断条件成⽴,执⾏的代码
    else:
        判断条件不成⽴,执⾏的代码
elif 条件4:
    判断条件成⽴,执⾏的代码
else:
    判断条件不成⽴,执⾏的代码
  • 【练习】
  • 1.定义两个整数变量python_score、c_score,使⽤ input 获取成绩 编写代码判断成绩
  • 2.要求只要有⼀⻔成绩 > 60 分就输出合格
python_score = int(input('请输入你的python成绩:'))
c_score = int(input('请输入你的c语言成绩:'))
if python_score > 60 or c_score > 60:
    print('合格')
else:
    print('不合格')
  • 1.定义 score 变量记录考试分数
  • 2.如果分数是 ⼤于等于 90分 显示 优
  • 3.如果分数是 ⼤于等于 80分 并且 ⼩于 90分 显示 良
  • 4.如果分数是 ⼤于等于 70分 并且 ⼩于 80分 显示 中
  • 5.如果分数是 ⼤于等于 60分 并且 ⼩于 70分 显示 差
  • 6.其它分数显示 不及格
score = int(input('请输入考试成绩:'))
if score>=90:
    print('优')
elif 90 > score >=80:
    print('良')
elif 80 > score >=70:
    print('中')
elif 70 > score >= 60:
    print('差')
else:
    print('不及格')
  • 假定某⽹站⽤户名固定为 ‘admin’, 密码固定为’123456’, 验证码 固定为 ‘8888’
  • 1.获取⽤户输⼊的⽤户名,密码和验证码
  • 2.先判断验证码是否正确,如果正确打印输出验证码正确,再判断⽤户名和密码是否正确
  • 3.如果验证吗不正确,直接输出 验证码不正确,请重新输⼊
user_name = input('请输入用户名:')
password = input('请输入密码:')
check_number = input('请输入验证码:')
if check_number == '8888':
    if user_name == 'admin' and password == '123456':
        print(f'验证通过,用户{
     user_name}')
    else:
        print('用户名错误或密码错误')
else:
    print('验证码不正确,请重新输⼊')
  • 石头剪刀布游戏,玩家从控制台输入石头、剪刀、布,程序随机出拳,判断胜负。
import random
player = int(input('请出拳,石头:1\t剪刀:2\t布:3'))
computer = random.randint(1,3)
# 玩家胜利
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player ==3 and computer == 1) :
    print('玩家胜利')
# 平局
elif player == computer:
    print('平局')
else:
    print('电脑胜利')

3.2 循环语句 while、for

  • while 循环
    • 处于 while 缩进中的代码,称为是 while 的循环体
while 判断条件:
	判断条件成立执行的代码
	......
  • 例:
i = 0 # 计数器
while i<5:
    print(i)
    i = i+1 
# 打印5次结果,0,1,2,3,4
  • 死循环和无限循环
    • 死循环和⽆限循环,在程序执⾏层⾯上看起来是⼀样的, 都是代码⼀直执⾏不能停⽌。
    • ⽆限循环中,⼀般会存在⼀个 if 判断语句, 当这个判断语句的条件成⽴, 执⾏ break 语句,来终⽌循环。
    • 关键字 break: 当程序代码执⾏遇到 break, break 所在的循环就会被终⽌执⾏。(终⽌循环)
    • 关键字 continue: 当程序代码执⾏遇到 continue, continue 后续的代码不执⾏,但是会继续下⼀次的循环(结束本次循环,继续下⼀次循环)。
    • break 和 continue 只能⽤在循环中
# 死循环
i = 0
while True:
	print(i,'这是一个死循环')
	i = i+1
# 无限循环版石头剪刀布游戏
import random
while True:
	player = int(input('请出拳,石头:1\t剪刀:2\t布:3'))
	computer = random.randint(1,3)
	# 玩家胜利
	if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player ==3 and computer == 1) :
		print('玩家胜利')
	elif player == computer:
		print('平局')
	else:
		print('电脑胜利')
	is_again = input('是否继续:yes/no')
	# 如果玩家输入为no退出游戏,否则继续
	if is_again == 'no':
		break
  • 【练习】求 1- 100 之间的累加和
i = 1 
sum = 0
while i<=100:
	sum += i # 把每次i值加
	i = i+1  # 每执行一次i值加1
print(sum)
  • for 循环
    • for 循环也称为是 for 遍历, 也可以做指定次数的循环。
    • 遍历: 是从容器中将数据逐个取出的过程。
    • 容器: 字符串/列表/元组/字典。
# for循环遍历字符串
str = 'python_for_循环'
for i in str:
	print(i)
# for循环遍历列表
num = [0,1,2,3,4,5]
for i in num:
	print(i)
# for循环指定次数的循环
# range(n) 可以⽣成 [0, n) 的整数的序列, 不包含 n
# 指定循环5次
for i in range(5):
	print(f'第{
     i+1}次循环')

# 使用for循环实现1-100的累加和
sum = 0
for i in range(101):
    sum += i
print(sum)

3.3 练习

  • 按以下需求设计一个程序:
  1. 提示⽤户输⼊登录系统的⽤户名和密码。
  2. 校验⽤户名和密码是否正确(正确的⽤户名:admin、密码:123456)。
  3. 如果⽤户名和密码都正确,打印“登录成功!”,并结束程序。
  4. 如果⽤户名或密码错误,打印“⽤户名或密码错误!”,提示⽤户继续输⼊⽤户名和密码登录
  5. 如果⽤户输⼊的⽤户名为“exit”,则退出程序。
while True:
	user_name = input('请输入用户名,exit退出:')
	if user_name == 'exit':
		break
	password = input('请输入密码:')
	if user_name == 'admin' and password == '123456':
		print('登录成功')
		break
	else:
		print('用户名或密码错误,请重新输入!')

四、容器

4.1 字符串

  • 在Python中使用单引号、双引号或三引号标识的内容,就是字符串。Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
  • 创建字符串
str1 = '123'
# 如果字符串包含单引号,就不能使用单引号标识
str2 = "'python'"
print(str2)
# 如果字符串包含双引号,就不能使用双引号标识
str3 = '"python"'
print(str3)
  • 转义字符
    • 在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。
    • 续行符:行尾\
    • 反斜杠符:\\
    • 单引号:\'
    • 双引号:\"
    • 换行:\n
    • 横向制表符:\t
    • 取消转义:在字符串的前边加上 r"", 字符串中的 \ 就不会进行转义。
  • 下标(索引)
    • 下标用来标识容器中元素的位置,一般使用的正数标,从0开始。
    • 通过下标来获取容器中具体位置的元素:变量[下标]
    • python 中是支持负数下标, -1 表示最后一个位置的数据。
str = 'python'
# P:0 y:1 t:2 h:3 o:4 n:5
# P:-6 y:-5 t:-4 h:-3 o:-2 n:-1
print(str[0])
print(str[-6])
  • 截取
    • 使用截取操作, 可以一次性获取容器中的多个数据(多个数据之间存在一定的规律,数据的下标是等差数列)。
    • 语法:变量[start:end:step]
      • start:表示开始元素的下标。
      • end:表示结束元素的下标,不包含结束元素。
      • step: 表示相邻元素的间隔长度。
str = 'python'
# P:0 y:1 t:2 h:3 o:4 n:5
# P:-6 y:-5 t:-4 h:-3 o:-2 n:-1
# 1.获取tho字母,start=2,end=5,step=1
print(str[2:5])
print(str[-4:-1])
# 2.获取'pto'字母,start=0,end=5,step=2
print(str[0:5:2])
print(str[-6:-1:2])
# 3.获取thon字母
print(str[2:])
print(str[-4:])
# 逆序输出字符串
print(str[::-1])
  • 字符串查找方法 find()
    • 语法:变量a.find(变量b)
    • 在变量a中查找是否具有匹配变量b的字符串,如果存在,返回第一次出现的下标,不存在则返回-1。
str = 'python'
str1 = 'th'
str_index = str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值