自动化测试工程师--pyhon基础知识体系

Python基础篇

第一节-认识python基础语法

一.注释,打印,命名,关键字

(1)注释

1.单行注释 -----------------------------------------

一次性注释的快捷键:ctrl + /

# 注释就是用来对代码进行说明
# 打印hello python(注释)
# 注释的快捷键:ctrl + /```

2.多行注释------------------------------------------

“”" 或者 ‘’’ ‘’’
注意点:python中双引号和单引号的作用是一样的所以在使用时,遇到一行双引号和单引号都存在的情况下要单独区分,最好混合使用。

"""
多行注释
第一行注释内容
第一行注释内容
第一行注释内容

"""

'''
多行注释2
第一行注释内容
第一行注释内容
第一行注释内容

'''

2.1注释使用场景

def func1(arg1,arg2):
    """
    一句话总结函数
    具体描述
    :param arg1: (参数1) 
    :param arg2: (参数2)
    :return: (返回值的具体描述)
    :otherfunc:(其他关联函数)
    """
    pass

def func2(arg1,arg2):
    """
    计算平均值

    :param arg1: int整数 
    :param arg2: int整数
    :return: int整数
    :otherfunc:(其他关联函数)
    """
    pass

(2)打印


# print输出的时候,输出的内容会自动换行
print('我是打印1')
print('我是打印2')

结果:
​​

在这里插入图片描述

# print输出的时候,通过end=''可以让下一个print输出的内容不换行

print('我是打印1',end='')
print('我是打印2')

结果:

在这里插入图片描述

#print的补充知识点

知识点:
1.python以.py结尾
2.执行程序: python mai.py
3.print是一个函数,用来打印输入
4.要打印的内容成为参数,参数一定要放在()里
5.字符串可以是单引号,双引号或者三引号
'''
print("""
             
             |\__|/ _____ //--seak------   \\xx/
             | xx\ /%%%%///   __     __  \\ \
             \_xxx %%%%  /   /  \   /  \    |
             / /x%%%%       ((0) ) ((0) )   |
            / #/|%%%%        \__/   \__/     \__  ______-------
            \#/ |%%%%             @@            \/
              _/%%%%                             |_____
     ________/|%%%%                              |    -----___
-----         |%%%%     \___                  __/
           ___/\%%%%    /  --________________//
     __----     \%%%%                     ___/
    /             \%%%%                   _/
                     \%%%%              _/
                       \%%%%           /
                          \%%         |
                           |%%        |
""")
print('你好,小海')
print('下海,你愿意跟我一起去异次元吗?')
print("-- -- -- -- --- -- --- -- -- -- - -- --")


#6变量,在内存中分配的一个小盒子,后面可以用变量名的名字来使用它里面的值
#7字符串可以通过+来拼接,可以把字符串和变量拼接在一起
#8变量名字小写,比较长的用下划线连接
name = '麦叔'
robot_name = '小麦'
print("你好," + name + ",我是"+ robot_name)
print("-- -- -- -- --- -- --- -- -- -- - -- --")


#format格式化
print("你好{},"  "我是{}".format(name,robot_name))
print("-- -- -- -- --- -- --- -- -- -- - -- --")

#format的进化方法(语法糖衣)
print(f"你好,{name},我是{robot_name}")

结果

在这里插入图片描述

#转义字符

https://blog.csdn.net/c_first/article/details/89505548

(3)命名

1.常见的命令命名表示法(风格):

(1)、纯小写字母,每个单词之间用下划线隔开

max_num = 199999

(2)、大驼峰命名法:每个单词的第一个字母大写

MaxNum = 1999999

(3)、小驼峰命名法:第一单词开头字母小写,后面单词第一个字母大写

maxNum = 199999

总结:模块命,函数名,变量名都小写,多个单词相连用_连接

类名:首字母大写 常量:全部大写

在这里插入图片描述

(4)关键字

python关键字:每个关键字都是有特殊的作用的。

关键字分类:

1.保留字---------------------------------------------

在这里插入图片描述

2.条件与循环语句---------------------------------

在这里插入图片描述

3.定义对象或函数---------------------------------

在这里插入图片描述

4.python功能语句---------------------------------

在这里插入图片描述

5.异常操作------------------------------------------

在这里插入图片描述

二.基本数据类型

数据类型
不可变类型:数字,字符串,元组
可变数据类型,列表,字典,集合

(1)数字(num)

1.数字类型------------------------------------------

int(整型)

float(浮点型)

bool(布尔型) 布尔型变量的值只有 真(true)和假(false)

complex(复数)

关键字:type 可以查看他是什么类型

#整数
number1 = 100
a = 20
res = type(a)
print(res)

#浮点数
b = 1.2
c = 222.2
res2 = type(b)
print(res2)

#布尔类型数据
t = True
f = False
res3 = type(f)
print(res3)

结果:

在这里插入图片描述

2.运算------------------------------------------------

2.1算术运算符-----------------------------------
"""
+ :加
- :减
* :乘
/ :除
** :幂运算
% :取余
//:除法取整(取商)
"""
a = 20
b = 5
res = a / b
print(res)
print(2**4)
print(9//5)

在这里插入图片描述

2.2赋值运算--------------------------------------

(1) 赋值运算符: = += -= *= /= %=

aa = 22
aa = aa + 1    # 等同于  aa +=1
print(aa)


bb =22
bb -= 1  # 等同于 bb = b-1
print(bb)

结果:

在这里插入图片描述

2.3比较运算--------------------------------------

比较的条件成立,返回的是True,条件不成立返回的是False
比较运算符:
== 表示等于
!= 表示不等于

a1 = 12
b1 = 12
print(a1 > b1)
print(111 == 111)
print("musen" == "xiaoming")

结果:

在这里插入图片描述

2.4逻辑运算--------------------------------------

逻辑运算符:与 或 非
and: 真真为真(所有的条件都要成立,才会返回True,否则返回False)
or : 一真为真,假假为假(只要有一个以上的条件成立,就返回True,都不成立返回False)
not: 取反

print(10 < 8 or 9 > 10)
print(not 10 < 7)

结果:

在这里插入图片描述

2.5运算符的优先级-----------------------------

运算符的优先级:用括号解决

print(10 > 8 and (11 > 19 or 11 < 19))

结果:

在这里插入图片描述

(2)字符串(str)

1.字符串的定义:通过引号(单引号,双引号,三引号)

name = "seak"
age = '18'
print(name,type(name))
print(age,type(age))

结果:

在这里插入图片描述

2.空字符与空白字符------------------------------

# 空字符:字符串中没有任何内容
s1 = ""
print(s1,type(s1))


# 空白字符:字符串中有内容,内容是空格键(空白)
s2 = " "
print(s2,type(s2))

结果:

在这里插入图片描述

3.字符串的转换------------------------------------

注:python中任何的数据类型都可以转换为bool值

1.字符串转换为bool类型

# python中任何的数据类型都可以转换为bool值
# 数据中有内容,转换成bool值之后为  :True
# 数据中没有有内容,转换成bool值之后为  :False
s1 = ""
s2 = " "
print(bool(s1))
print(bool(s2))

结果:

在这里插入图片描述


2.数值与字符串的转换

number = 999
print(type(number),number)

# 数值类型转换为字符串
s3 = str(number)
print(type(s3),s3)

结果:

在这里插入图片描述


3.字符串类型转换为数值

# 字符串类型转换为数值
s4 = "898"
n2 = int(s4)
print(n2,type(n2))

结果:

在这里插入图片描述

4.字符串取值---------------------------------------

在这里插入图片描述

4.1下标索引取值--------------------------------
str1 = "python hello"
res = str1[-4]
print(res)

结果:

在这里插入图片描述

4.2字符串切片取值-----------------------------

[起始位置:终止位置] :取头不取尾,从起始位置开始,到终止位置的前一个
起始位置:不写,默认从头开始
终止位置不写:默认到结束
[起始位置:终止位置:步长] :步长为多少,就是多少个取一个

str = 'Runoob'

print(str)  # 输出字符串
print(str[0:-1])  # 输出第一个到倒数第二个的所有字符
print(str[0])  # 输出字符串第一个字符
print(str[2:5])  # 输出从第三个开始到第五个的字符
print(str[2:])  # 输出从第三个开始的后的所有字符
print(str * 2)  # 输出字符串两次
print(str + "TEST")  # 连接字符串

结果:

在这里插入图片描述

5.字符串的拼接------------------------------------

# 字符串拼接
desc1 = "我的名字叫musen"
desc2 = "今年年龄是18岁"

# 第一种:  +
res3 = desc1 + ',' + desc2
print(res3)


# 第二种:join方法
"""
字符串X.join((字符1,字符2,字符3,字符4,字符5))
字符1 字符串X 字符2 字符串X 字符3 字符串X 字符4 字符串X 字符5

"""
res5 = ','.join((desc1,desc2,'python666'))
print(res5)

结果:

在这里插入图片描述

6.字符串的转义------------------------------------

\n :换行符
\t :制表符(四个空格)
r : 关闭字符串的转义

\n :换行符

print('8888888\n999999999\n77777777')

结果:

在这里插入图片描述

\t :制表符(四个空格)

print('8\t9\t777')

结果:

在这里插入图片描述


r : 关闭字符串的转义

r1 = r"123\nbc"
r2 = "123\nbc"
print(r1)
print('*******************')
print(r2)

结果:

在这里插入图片描述

7.输入 input-----------------------------------------

name = input("请输入姓名:")
age = input("请输入年龄:")
gender = input("请输入性别:")

print("*********************")
print("姓名:", name)
print("年龄:", age)
print("性别:", gender)
print("*********************")

结果:

在这里插入图片描述

8.字符串的相关方法------------------------------------

8.1方法的调用格式-----------------------------
			字符串.方法名()
8.2 find查找字符串片段在字符串中的下标位置--------------------------------------------

查找字符串片段在字符串中的下标位置,从前往后找,返回的是第一个被找到字符串片段(起始位置)

第一个参数是要查找的字符串片段,第二参数,是查找的起始点


s1 = "abcd234abcabcd234abc"
res1 = s1.find('c',1)
print(res1)
 
# 字符不存在返回 - 1
res2 = s1.find('s', 4)
print(res2)

结果:

在这里插入图片描述

8.3 index检测字符串中是否包含子字符串-------------------------------
#index方法:检测字符串中是否包含子字符串 str(按下标),不存在会抛异常
# index()方法语法:str.index(str,         beg=0,         end=len(string))
#                             字符串,    开始位置,      结束位置
str1 = "this is string example"
str2 = "exam"
#str1中包含str2
print(str1.index(str2))
#str1中包含str2从第10个索引位置开始
print(str1.index(str2,10))
 
print("*"*20)
#str1不包含str2的字符串从第40个位置开始(会抛异常)
print(str1.index(str2,40))

结果:

在这里插入图片描述

8.4 count统计字符串片段--------------------------------------------
# count方法:统计字符串片段,在字符串中出现的次数
s1 = "abcd234abcabcd234abc"
res1 = s1.count('abc')
print(res1)

结果:

在这里插入图片描述

8.5 replace替换指定的字符串片段--------------------------------------------
# replace方法:替换指定的字符串片段
# 参数1:要替换的字符串片段
# 参数2:替换之后的字符串片段
# 参数3:可以用来指定替换的次数(默认是替换所有的)
s1 = "abcd234abcabcd234abc"
res2 = s1.replace('abc', 'ABC',2)
print(res2)

结果:

在这里插入图片描述

8.6split指定分割点对字符串进行分割--------------
# split方法:指定分割点对字符串进行分割
# 参数1:分割点
# 参数2:分割的次数(默认找到所有的分割点进行分割)
s2 = "111ab22ab333ab444"
# ["111","b222","b333","b444"]
# ['111', 'b222', 'b333', 'b444']
res4 = s2.split("2",2)
print(res4)

结果:

在这里插入图片描述

8.7upper将小写字母转换为大写--------------
### upper方法:将小写字母转换为大写
s3 = "abc123ABC"
res6 = s3.upper()
print(res6)

结果:

在这里插入图片描述

8.8lower将大写字母转换为小写--------------
#lower方法:将大写字母转换为小写
s3 = "abc123ABC"
res7 = s3.lower()
print(res7)

结果:

在这里插入图片描述

9.字符串格式化输出--------------------------------------

9.1 format格式化输出----------------------------------

(1)按位置一 一对应进行填充

#  有几个{},format中就可以传入几个数据,按位置一一对应进行填充
str1 = "今收到{},交了学费{}元,开此收据为凭证"
print(str1.format('小明',500))

结果:

在这里插入图片描述

(2)通过下标位置指定填充内容的数据


# 在{}中通过下标位置指定填充内容的数据(扩展)
str1 = "今收到{0},交了学费{0}元,开此收据为凭证"
print(str1.format('小明',10))

结果:

在这里插入图片描述


(3)保留特点小数位数按4舍5入方式{:.2f}

price = float(input("请输入价格:"))
#保留小数点后面的位数
print("今天xx股票的是{:.2f}元".format(price))

结果:

在这里插入图片描述


(4)将数字按百分比显示

# 将小数按百分比的形式显示
print('百分比为{:.2%}'.format(0.12))

结果:

在这里插入图片描述

9.2 传统格式化输出%----------------------------------
# 传统的格式化输出方法:%
# %s :为字符占位(任意类型都可以)
# %d :为数值类型占位
# %f :为浮点数占位
 
s2 = "abcd1224:%s---%s---%s"%('A','B','C')
print(s2)
 
s3 = "我的名字%s,年龄%f,性别%s" % ('小明', 18, "男")
print(s3)
name = "小明"
age = 18

结果:

在这里插入图片描述

9.3F表达式输出
# F表达式格式化输出
name = "小明"
age = 18
s3 = F"我的名字{name},年龄{age}"
print(s3)

结果:

在这里插入图片描述

(3)列表

1.list的特点------------------------------------------------

1.查找和插入的时间随着元素的增加而增加
2.占用空间小,浪费内存很少
3.列表是用时间换取空间的一种方式

2.list与dict的区别------------------------------------------------

dict和list比较,dict有以下几个特点:
1.查找和插入的速度极快,不会随着key的增加而增加
2.需要占用大量的内存,内存浪费多
3.dict是用空间来换取时间的一种方法

3.list与tuple的区别------------------------------------------------

tuple与list的区别

1.元组比列表操作速度快
2.对数据“写保护“
3.可用于字符串格式化中
4.可作为字典的key

4.list的性质------------------------------------------------

列表:列表是一种可变的数据类型
列表的定义:[]

5.list取值------------------------------------------------

5.1列表的索引取值------------------------------------------
# 列表可以通过下标索引取值
li = [19, 1.3, "python"]
print(li[2])

结果:

在这里插入图片描述

5.2列表的切片操作----------------------------------------
# 列表的切片操作
li1 = [11, 22, 33, 44, 55]
print(li1[::2])

结果:

在这里插入图片描述

5.2列表的增删查改----------------------------------------

(1)增加元素的方法:append,insert extend

li2 = [1, 2, 3]
#append:往列表结尾处添加一个元素(追加)
li2.append("11")
 
#insert:通过下标指定位置,往列表中加入元素
li2.insert(1, 999)
 
#extend:一次性加入多个元素(放在列表的结尾处)
li2.extend([11, 22, 33])
print(li2)

结果:

在这里插入图片描述


(2)删除元素的方法:remove pop clear


# 删除元素的方法: remove  pop  clear
 
li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
 
# remove:删除指定的元素(删除找到的第一个)
li3.remove(1)
print(li3)
 
#pop方法:指定下标位置进行删除(没有指定下标位置,默认删除的是最后一个)
li3.pop(3)
print(li3)
 
#clear:清空列表
li3.clear()
print(li3)

结果:

在这里插入图片描述


(3)查找元素的方法:index

注:字符串中可用find和index

li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
# index:查找指定元素的下标,找到了返回下标值,没有找到报错
res = li3.index(11)
print(res)

结果:

在这里插入图片描述


(4)修改列表元素的方法:通过下标去指定元素,进行重新赋值

# 修改列表中某个元素的值
# 通过下标去指定元素,进行重新赋值
li4 = ["aa", "bb", 11, 22, 33]
#将bb改为999
li4[1] = 999
print(li4)

结果:

在这里插入图片描述

5.3 列表的其他操作方法
5.3.1列表的统计count----------------------------------
# count:统计列表中某个元素出现的次数
li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
#统计1出现的次数
res2 = li3.count(1)
print(res2)

结果:

在这里插入图片描述

5.3.2列表的排序sort------------------------------------
li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]

#默认从小到大
li5.sort()
print(li5)
 
#从大到小
#通过参数(reverse=True)可以指定从大到小,降序排序
li5.sort(reverse=True)
print(li5)

结果:

在这里插入图片描述

5.3.3列表的反转reverse(头变成尾,尾变成头)--------------------
li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
li5.reverse()
print(li5)

结果:

在这里插入图片描述

5.3.4列表的复制copy--------------------------------------------------
li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
li6 = li5.copy()
print(li6)

结果:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340