Python-字符串与元组
一、字符串的类型
转义符号
一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
\n: 代表换行符 \": 代表双引号本身
\t: 代表tab符 \': 代表单引号本身
##表示字符串:
第一种方式
'do you see my small bear'
第二种方式
"do you see my small bear"
第三种方式
"""do you see my small bear"""
\n 表示换行符
\t 表示tab符
\表示转移字符 (使用较多)
例题 1
答案 while 为无限循环也叫做死循环
测试结果
但是这个程序有一个bug 如果输入的是空格的话也会输出 那样子显然是不合理的我们可以这样子进行修改
cmd = raw_inoput("[[email protected]]#:").strip()
一会会说到这个命令
字符串操作预览
字符串属于序列,序列支持的操作如下:
• 索引 切片
• 判断子串 重复
• 连接 计算长度
索引:
• 索引(s[i] ):获取特定偏移的元素
例如 s = "hello" 那么s[0]就等于h
• 给出一个字符串,可输出任意一个字符,如果索引为负数,就是相当于从后向前数。
切片
切片S[i:j]提取对应的部分作为一个序列:
•上边界并不包含在内;
•如果没有给出切片的边界,切片的下边界默认为
0,上边界为字符串的长度;
•扩展的切片S[i:j:k],其中i,j含义同上,k为递增步
长;
很重要!!!!!
start默认是从0开始的
stop是给的值减1(不包括stop那个数)但是默认的是包括的 全部长度
step默认值是1
如下图所示 s = hello 那么s[1:4:2]就是1第二个数e(从左到右是从0开始数的)然后4左边起数到4 (o)但是不包括4 那么前两个截取的部位就是ell 2 就是步长 每两个数取一个值 那么就是e 和 第三个数l 就是el
那么s[2:]就是第二个字符往后的所有包括第二个字符
而s[:2]就是stop为2往前的所有字符 但是不包括第二个字符
[::-1]既可以实现反向输出字符(笔试题)
测试:
for循环:
for i in 可迭代的对象
state1..
第一个可迭代的对象:
range(start,stop,step)step可省略,默认是1 ,start也可省略默认是0
例题 range迭代的方法编写99乘法表
答案:
12 for i in range(1,10):
13 for j in range(1,i+1):
14 print "%d" %(i*j), ##逗号的作用是不换行
15 print "\n"
~
测试结果:
倒三角例题:
12 for i in range(9,0,-1):
13 for j in range(i,0,-1):
14 print "%d*%d=%d"%(i,j,i*j),
15 print "\n"
~
输出显示:
[[email protected] mnt]# ./day2.py
9*9=81 9*8=72 9*7=63 9*6=54 9*5=45 9*4=36 9*3=27 9*2=18 9*1=9
8*8=64 8*7=56 8*6=48 8*5=40 8*4=32 8*3=24 8*2=16 8*1=8
7*7=49 7*6=42 7*5=35 7*4=28 7*3=21 7*2=14 7*1=7
6*6=36 6*5=30 6*4=24 6*3=18 6*2=12 6*1=6
5*5=25 5*4=20 5*3=15 5*2=10 5*1=5
4*4=16 4*3=12 4*2=8 4*1=4
3*3=9 3*2=6 3*1=3
2*2=4 2*1=2
1*1=1
字符串是可迭代对象。可以通过for语句实现
重复、连接及计算长度
重复使用“*”
连接使用“+”
计算长度使用len()
字符串常用操作
str.isalnum() //判断是否都是字母或数字
str.isalpha() //判断是否都是字母
str.isdigit() //判断是否都是数字
str.islower() //判断是否都是小写
str.isspace() //判断是否都是英文空格
str.istitle() //判断是不是都是标题(有大小写)
str.isupper() //判断是不是都为大写字母
例题
答案:
老师答案:
测试:
1、判断字符串有什么组成
s.isdigit ......
2、判断是否以什么开头,什么结尾
s.startswith("http")
s.endswith("png")
3、去除字符串左右的空格,主要应用在有用户输入数据的地方
s.strip 去掉全部空格
s.lstrip 去掉左边的空格
s.rstrip 去掉右边的空格
替换的思想十分重要!!!
去掉所有的空格s.replace(" ","")替换的思想 十分重要 空格替换为空!!!!str.replace(old,new[,count])- 将str中的old字符串替换为new字符串,并将替换后的新字符串返回,如果count指定,则只替换前count个字
左右加字符串
s.center()
s.ljust()
s.rjust()
s.isalnum表示如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
s.isalpha表示是不是全部都是字符
s.istitle方法检查字符串中所有可大小写的第一个字符是否为大写,所有其他可大小写的字符是否均为小写
分离按照指定分离符:默认指定分隔符为空格
ip="172.25.254.122"
ip.split(".")
6、指定分隔符链接信息
a=ip.split()
"+".join(a)
s.count('l')查看l在s中出现的次数
s.find('l')查看l在s中的位置
s.find(''),s.index('')都是将查找的字母出现的第一次的索引显示,但是在该字母不存在时,find返回-1,index会报错
zip的用法
元组
元组(Tuple) 笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
元组是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。
在二维表里,元组也称为记录。
引入元组的原因
比如:打印用户的姓名
userinfo1 = "fentiao 4 male"
userinfo[0:7]
结论:字符串中操作提取姓名/年龄/性别的方式不方便,诞生元组
元组的定义
•- 定义空元组
tuple = ()
•- 定义单个值的元组
tuple = (fentiao,)
•- 一般的元组
tuple = (fentiao, 8, male)
元组的常用方法
元组可用的内置方法
max((12, 34, 56))
56
枚举的使用
自动售货机的部分代码
元组的操作
元组也属于序列,可执行的操作如下:
索引、切片、重复、连接和查看长度 成员操作符
反向输出
元组的循环
字符串的循环
元组目前接触的第三个可迭代对象
Demo:端口扫描器模型
over~