python-II

字符串

1. 字符串类型


字符串的定义:

•第一种方式:
str1 = 'our company is westos'
•第二种方式:
str2 = "our company is westos"
•第三种方式:

str3 = """our company is westos"""


2. 转义符号

一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
\n: 代表换行符                                  \": 代表双引号本身

\t: 代表tab符                                      \': 代表单引号本身



3. 三重引号

-- 块注释:多行代码注释

-- 字符串格式化



4. 字符串操作预览

字符串属于序列,序列支持的操作如下:
• 索引                                                  切片
• 判断子串                                           重复
• 连接                                                  计算长度索引


索引

(s[i] ):获取特定偏移的元素

• 给出一个字符串,可输出任意一个字符,如果索引为负数,
就是相当于从后向前数。
                    索引理解
字符串            h    e     l    l     o    \n
索引                0    1     2   3    4     5

索引                -6   -5   -4  -3   -2    -1



切片

S[i:j]提取对应的部分作为一个序列:

•上边界并不包含在内;
•如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;

•扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;


s[:]获取从偏移量为0到末尾之间的元素,是实现有效

拷贝的一种方法。



判断子串

判断一个sub字符串是不是属于s字符串:
•sub in s

•sub not in s



重复、连接及计算长度



5. 字符串的类型转换

str(obj)                            将其他类型内容转换为字符串
int(obj)                            将字符串转换为为整数
float(obj)                         将字符串转换为浮点型

long(obj)                         将字符串转换为长整型


(1)str.capitalize()
- 将字符串首字母大写,并返回新的首字母大写

后的字符串。



(2)str.center(width[,fillchar])

- 返回一个长为width的新字符串,在新字符串中原字符居中,其他部分用fillchar指定的符号填充,未指定时通过空格填充。



(3)str.count(sub[, start[, end]]) -> int

- 返回sub在str中出现的次数,如果start与end指定,则返回指定范围内的sub出现次数。



(4)str.endswith(suffix[, start[, end]])

- 判断字符串是否以suffix结束,如果start和end指定,则返回str中指定范围内str子串是否以suffix结尾,如果是,返回True;否则返回False。

str.startswith(prefix[, start[, end]])



(5)str.find(sub[,start[,end]])
   - 判断sub是否在str中,存在返回索引值,不存在返
回-1.


(6)str.index(sub[,start[,end]])

   - 与find方法函数功能相同,如果sub不存在时抛出

ValueError异常;


(7)

str.isalnum()         ##判断是否都是字母或数字

str.isalpha()          ##判断是否都是字母
str.isdigit()            ##判断是否都是数字
str.islower()          ##判断是否都是小写
str.isspace()         ##判断是否都是英文空格
str.istitle()            ##判断是不是都是标题(有大小写)

str.isupper()        ##判断是不是都为大写字母


(8)str.join(seq)

- 以str作为分隔符,将序列seq中的所有元素合并为一个新的字符串。


(9)str.replace(old,new[,count])

- 将str中的old字符串替换为new字符串,并将替换后的新字符串返回,如果count指定,则只替换前count个 字符串。


(10)str.split([sep[,maxsplit]])

- 以sep字符串作为分割符对str进行切割,默认为空格;
- maxsplit代表切割的此处。


(11)str.strip([chars])

- 返回一字符串,将str中首尾包含指定的chars字符删除的字符串,未指定时,删除首尾的空格。


元组tuple

1. 为什么需要元组?
比如:打印用户的姓名
userinfo1 = "fentiao 4 male"
userinfo[0:7]
结论:字符串中操作提取姓名/年龄/性别的方式不方便,诞生元组.元组的定义

2. 元组特性
• 不能对元组的值任意更改:



• 对元组分别赋值,引申对多个变量也可通过元组方式分别赋值:



为什么可以改变元组的值呢?



3. 元组的操作
元组也属于序列,可执行的操作如下:
索引、切片、重复、连接和查看长度



删除元组:



4. 元组的方法
• t.count(value)-->int
  返回value在元组中出现的次数;

• t.index(value)
  返回value在元组中的偏移量(即索引值)


列表list

1. 列表的索引
•下标是从0开始计算,比如list[0]读取的是列表的第1个元素;
•list[-1]读取的是列表的倒数第1个元素。


2. 列表的切片
• 0代表从哪个索引开始切片;
• 3代表切片到哪个位置,并且不包含第三个索引;
• 2代表切片的步长。

>>> list1
['fentiao', 5, 'male']
>>> list1[0:3:2]
['fentiao', 'male']


3. 列表的添加
• 列表可通过append方法添加元素:




• 列表可通过方法添加元素:



• 在指定位置添加元素使用inert方法:
L.insert(index, object)



4. 列表的修改
• 修改列表的元素:直接重新赋值:



5. 列表的查看
• 查看某个列表元素的下表用index方法;
• 查看某个列表元素出现的次数用count方法。



6. 列表的删除
•list.remove(list[])



•del(list[])


集合类型

1. 集合的定义
set = {1,2,3}
set = {1,2,3,1,2,3}
set = {1,2,3,'hello'}
set = {1,2,3,'hello',(1,2,3)}
set = {1,2,3,'hello',(1,2,3),[1,2,3]}

2. set的应用场景
集合是一个无序的,不重复的数据组合。
• 列表去重
• 关系测试:如交集、差集、并集的关系测试
• 交集: list_1.intersection(list_2)
• 并集: list_1.union(list_2)
• 差集: list_1.difference(list_2)
            list_2.difference(list_1)
• 对等差分 list_1.symmetric_difference(list_2)
• 子集 list_1.issubset(list_2)
• 父集 list_1.issuperset(list_2)
• 有无交集 list_1.isdisjoint(list_2)


3. 集合的关系测试操作
• 交集: list_1 & list_2
• 并集: list_1 | list_2
• 差集: list_1 - list_2
            list_2 - list_1
•对等差分
list_1 ^ list_2


4. 集合的添加
•s.add(1)
在集合中添加一项。

•s.update([1,3,4])
在集合中添加多项,跟的参数应该是可迭代类型集合的删除。

•s.remove(1)
删除集合中指定的元素。

• s.pop()
随机删除集合中的某个元素,并返回删除的元素集合的其他操作。

• len(s)
显示集合set的长度。

•"1" in s
检测某元素是否为集合s的成员,返回布尔值集合的其他操作。

• s.copy()
集合的浅拷贝,此处不深入研究,后面会说。

•s.clear()
清空集合的所有元素


作业:

创建一个用户登录程序:保存用户的用户名和密码。

                                     新建用户时,判断用户名是否已经存在,若已经存在则报错;

                                     登录系统时,确保用户名存在于系统中,密码正确,有三次机会,超过三次机会则报错。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值