以下是软件测试小白关于python基础知识的学习记录。
一、Python介绍
python 主要版本:python 2、python 3(主流)。
语言分类:
编译型语言(c、c++)
需要编译器,对源代码进行编译最终生成可执行文件。
先编译再执行。
解释型语言(python)
二、基础语法
2.1 注释
【说明】注释是对代码进行解释说明的文字,不会被执行,便于理解代码。
【分类】
单行注释:只对单行内容起作用,以#
开头,快捷键ctrl+/
。
多行注释:注释的内容可以换行书写,格式为'''注释内容'''
或"""注释内容"""
。
2.2 标识符
【说明】标识符是用户编程时使用的名字,用于给变量、函数、类命名。
【规则】
由字母、数字和下划线组成。
不能使用数字开头。
不能使用python内置关键字。
严格区分大小写。
不建议使用中文。
2.3 变量
【说明】变量是用来保存数据的,变量必须先定义再使用。
【语法】变量名=数据值
【使用】直接使用变量名即可。
name = "张三"
age = 18
print ( name, age)
变量命名规范
要遵循标识的规则。
命名习惯
驼峰命名法:
大驼峰:每个单词的首字母大写,例如:MyName;
小驼峰:第一个单词的首字母小写,其余单词首字母大写,例如:myName;
下划线连接:单词与单词之间使用下划线连接。
2.4 数据类型
数字型
整型(int)
浮点型(float)
布尔型(bool)
非数字型
字符串(string)
列表(list[])
元组(tuple())
集合(set{})
字典(dict{键值对})
age = 18
num = 2.345
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('提示信息')
代码从上至下执行,当代码执行遇到 input 时会中断执行,等待键盘输入,直到输入完成再次执行。
在输入过程中,使用回车键表示此次输入结束。
使用 input 函数获取的内容,都是字符串。
name = input ( '请输入您的名字:' )
age = input ( '请输入您的年龄:' )
print ( name, age)
2.6 输出
字符串.format()
字符串中需要使用变量的地方,用{}
进行占位。
在format()括号内,按占位顺序,将变量填写。
name = '张三'
age = 18
sex = '男'
print ( '姓名:{},年龄:{},性别:{}' . format ( name, age, sex) )
F-string
python 3.6版本以后才可以使用。
在字符串前面加上f
或F
。
字符串中需要使用变量的地方,用{}
进行占位。
将变量直接写在{}
占位符中。
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 :
判断条件不成⽴, 执⾏的代码
每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
else 不能单独使⽤ 必须配合 if 使⽤, 并且 else 要和 if 对齐。
if 判断条件1 :
判断条件成⽴, 执⾏的代码
elif 判断条件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
死循环和无限循环
死循环和⽆限循环,在程序执⾏层⾯上看起来是⼀样的, 都是代码⼀直执⾏不能停⽌。
⽆限循环中,⼀般会存在⼀个 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' )
if is_again == 'no' :
break
i = 1
sum = 0
while i<= 100 :
sum += i
i = i+ 1
print ( sum )
for 循环
for 循环也称为是 for 遍历, 也可以做指定次数的循环。
遍历: 是从容器中将数据逐个取出的过程。
容器: 字符串/列表/元组/字典。
str = 'python_for_循环'
for i in str :
print ( i)
num = [ 0 , 1 , 2 , 3 , 4 , 5 ]
for i in num:
print ( i)
for i in range ( 5 ) :
print ( f'第 {
i+ 1 } 次循环' )
sum = 0
for i in range ( 101 ) :
sum += i
print ( sum )
3.3 练习
提示⽤户输⼊登录系统的⽤户名和密码。
校验⽤户名和密码是否正确(正确的⽤户名:admin、密码:123456)。
如果⽤户名和密码都正确,打印“登录成功!”,并结束程序。
如果⽤户名或密码错误,打印“⽤户名或密码错误!”,提示⽤户继续输⼊⽤户名和密码登录
如果⽤户输⼊的⽤户名为“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'
print ( str [ 0 ] )
print ( str [ - 6 ] )
截取
使用截取操作, 可以一次性获取容器中的多个数据(多个数据之间存在一定的规律,数据的下标是等差数列)。
语法:变量[start:end:step]
start:表示开始元素的下标。
end:表示结束元素的下标,不包含结束元素。
step: 表示相邻元素的间隔长度。
str = 'python'
print ( str [ 2 : 5 ] )
print ( str [ - 4 : - 1 ] )
print ( str [ 0 : 5 : 2 ] )
print ( str [ - 6 : - 1 : 2 ] )
print ( str [ 2 : ] )
print ( str [ - 4 : ] )
print ( str [ : : - 1 ] )
字符串查找方法 find()
语法:变量a.find(变量b)
在变量a中查找是否具有匹配变量b的字符串,如果存在,返回第一次出现的下标,不存在则返回-1。
str = 'python'
str1 = 'th'
str_index = str