Python简介
Python是一个高层次的结合了解释性、变异性、互动性和面向对象的脚本语言。Python语言的可读性行强,语法结构简单,比较适合新手及测试人员学习;
Python特点
- 易于学习: 相对较少的关键字,结构简单,有明确定义的语法,学习起来比较简单,易于上手;
- 易于阅读: 代码定义的更清晰;
- 易于维护: python的成功在于它的源代码相当容易维护的;
- 广泛的标准库: 具有丰富的库,可以跨平台在unix、Windows和macintosh兼容性很好;
- 可移植: 基于其开放源代码的特性,可以被移植到许多平台;
- 可扩展: 如果你需要一段运行很快的关键代码,或者需要编写一些不愿 开放的算法,可以使用C++或者C完成,然后从你的python程序中调用;
- 数据库: python提供所有主要的商业数据库的接口;
- GUI编程: python支持GUI可以创建和移植到许多系统调用;
- 免费、开源: Python 是 FLOSS(自由/开放源码软件)之一。
python数据类型
python中有六种标准的数据类型:
不可变数据类型 | 可变数据类型 |
---|---|
Number(数字) | List(列表) |
String(字符串) | Dictionary(字典) |
Tuple(元组) | Ste(集合) |
一、字符串
字符串定义: 用单引号 ’ ’ 或者双引号 " " 括起来字符,就是字符串;
访问字符串中的值: 字符串是一个有序集合,可以通过其位置来获得具体的元素。字符串中的字符是通过索引(下标) 来提取的,索引从0开始,也可以取负值,从末尾开始提取,最有一位为-1,倒数第二位为 -2。在取字符串中的值的时候,如果取一个元素我们可以使用索引,如果需要取多个元素可以使用切片;
索引:变量名[索引值]
切片:变量名[头下标:尾下标:步长](步长默认为1,可以不写)
注:字符串下标最大值是n-1(n字符串的长度);
# 字符串的索引 语法---变量名[头下标:尾下标]
# 索引值以 0 为开始值,-1是从末尾开始的位置
a = "hello"
b = "python"
print("a 索引为1的元素是:", a[1]) # 打印结果:e
print("a 索引1-4的元素是", a[1:4]) # 打印结果:ell
print("b 索引1-4,步长为2的值", b[1:4:2]) # 打印结果:yh
转义字符: 当字符中有特殊字符的时候 ,需要使用 “\” 进行转义;例如:filepath = 'D:\note1.txt' # \n 是一个换行符如果直接打印就会把这个路径给破坏掉
在现实中还有很多转义符,这里就不一一列举了;
# 当字符中有特殊字符的时候需要使用转义符进行转义
filepath = 'D:\\note1.txt' # 方法一:直接再\n 前边加一个\(反斜杠),只会对当个的特殊字符生效
filepath1 = r'D:\note1.txt' # 方法二:字符串之前加一个r,则字符串里边的转义符都不生效
filepath2 = r'D:/note1.txt' # 方法三:表示路径的时候,可以用/ 代替\
print(filepath, filepath1, filepath2, sep='\n') # sep='\n' 换行打印输出
print(len('\n')) # 打印转义符占用的长度,len()返回对象的长度
字符串运算符: 字符串的运算常用的有,字符串的 拼接、根据索引获取字符串中的字符、成员运算符等;
a = “hello”
b = “python”
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串拼接 | a + b 输出结果是: hello python |
* | 重复输出字符串 | a*2 输出结果:hellohello |
[] | 通过索引获取字符串中的字符 | a[1] 输出结果是:e |
[ : ] | 获取字符中的一部分,左闭右开原则 | a[1:4] 输出结果:ell |
in | 成员运算符,如果字符串包含特定的字符返回Ture,否则返回False | “h” in a 输出结果Ture |
not in | 成员运算符,字符串中不包含特定的字符串返回Ture | "M"not in a 输出结果:Ture |
r/R | 原始字符串,所有字符串直接按照字面意思来使用,没有转义特殊或不能打印的字符 | print(r"\n") # 打印结果:\n print(R"\n") # 打印结果:\n |
% | 格式字符串 | 常用的:%s、%d、%f 等 |
# 示例python3
a = "hello"
b = "python"
print("a + b 输出的结果是:", a + b) # 打印结果:hellopython
print("a * 2 输出的结果是:", a * 2) # 打印结果:hellohello
print("a[1]输出的结果是:", a[1]) # 打印结果:e
print("a[1:4]输出的结果是:", a[1:4]) # 打印结果:ell
print("判断 h 在a中是否存在,存在打印Ture---", "h" in a) # 打印结果:True
print("判断 m 在a中是否存在,不存在打印Ture---", "m" not in a) # 打印结果:True
print(r"\n") # 打印结果:\n
print(R"\n") # 打印结果:\n
字符串格式化: 字符串的格式化,就是字符串的拼接
"""
方案一 :
%s:字符串; %d:整数; %f:浮点数,%d后边跟的必须是数字,不然会报错
1.前边的空位比后边的值多,则报错
2.前边的空位比后边的值少,则报错
3.前边是%s,后边放数字不报错
"""
info = "我是%s,你是%s,他是%s,今年 是%d年"%('大聪明', '小聪明', '小二货', 2022)
# 补齐 %ns n:任意整数,表示补齐到n位,不足n位用空格补齐,默认右对齐
info1 = "我是%10s,你是%s,他是%s,今年 是%10d年"%('大聪明', '小聪明', '小二货', 2022)
# 超过之后不做任何操作
info2 = "我是%10s,你是%10s,他是%s,今年 是%10d年"%('大聪明', '离离原上草,一岁一枯荣,野火烧不尽', '小二货', 2022)
# 左对齐 %-ns
info3 = "我是%-10s,你是%s,他是%s,今年是%-10d年"%('大聪明', '小聪明', '小二货', 2022)
# 数字左侧补0,%010d,不够10位数字,左侧用0补齐
info4 = "今年是%010d" %(2022)
# %f 浮点数,默认保留6位小数
num1 = "输入数字%f"%(3.6)
# %f 浮点数,保留两位小数用%.2f
num2 = "保留两个小数位%.2f"%(3.6)
print(info, info1, info2, info3, info4, num1, num2, sep='\n')
# 方案二:前边比后边空位多,报错;前边比后边少,不报错
str1 = "我的名字{},你的名字{},年龄是{}".format("张三", "李四", 22, 33)
# 补齐{:n} n表示任意证书,不足n位补齐到n位,字符串默认左对齐,数字默认右对齐
str2 = "我的名字{:10},你的名字{:10},年龄是{:10}".format("张三", "李四", 22, 33)
# 补齐{:n} 左对齐<, 居中对齐^, 右对齐>
str3 = "我的名字{:>10},你的名字{:^10},年龄是{:<10}".format("张三", "李四", 22, 33)
# 补0
str4 = "我的名字{:>010},你的名字{:^10},年龄是{:>010}".format("张三", "李四", 22, 33)
# {}里边美誉写数字的时候,称为顺序取值法,写了数字,称为下标取值法,但是不能操作数字的下标
str5 = "我的名字{1},你的名字{0},年龄是{3}".format("张三", "李四", 22,44)
print(str1, str2, str3, str4, str5, sep='\n')
# 方案二的简便写法,补齐方法通用
name1 = "小明"
name2 = "小红"
print(f"我的名字{name2},你的名字{name1}")
打印结果:
我是大聪明,你是小聪明,他是小二货,今年 是2022年
我是 大聪明,你是小聪明,他是小二货,今年 是 2022年
我是 大聪明,你是离离原上草,一岁一枯荣,野火烧不尽,他是小二货,今年 是 2022年
我是大聪明 ,你是小聪明,他是小二货,今年是2022 年
今年是0000002022
输入数字3.600000
保留两个小数位3.60
我的名字张三,你的名字李四,年龄是22
我的名字张三 ,你的名字李四 ,年龄是 22
我的名字 张三,你的名字 李四 ,年龄是22
我的名字00000000张三,你的名字 李四 ,年龄是0000000022
我的名字李四,你的名字张三,年龄是44
我的名字小红,你的名字小明
注:1.变量定义的过程,就是赋值的过程;
2.注释的快捷键:ctrl + /;
3.字符串和数字不能进行相加 ,例如:print("1" + 2)
;需要把"1" 转换成int类型print(int("1") + 2)
,int(str) 把str类型转换成int类型,str必须是数字;