python学习之路(三)

#字符串(不可变数据类型)

一、字符串的表示

  1.  字符串可以用单引号‘’ ,双引号””表示,但是左右两边的符号要一样,不能一边单引号一边双引号

>>> str1 = "qwer"
>>> str2 = 'qwer'

str3 = "qwer'
SyntaxError: EOL while scanning string literal

 

2. 三引号字符串不赋值的情况下,通常当作跨行注释使用,例如:

'''这是一个三引号字符串用于注释的例子,
例子虽然只是简简单单的一句话,
却毫无遮掩地体现了作者用情至深,
所谓爱至深处情至简!'''

print("I love Python")


输出的结果为 :
I love Pytho

 

 

 3. 当一个字符串里面含有引号时,有下面几种方法可以实现打印

(1)使用不同的引号表示字符串

>>> "It's Python"
      
"It's Python"
>>> 

 (2)使用转义符号(\)对字符串中的引号进行转义

>>> 'It\'s Python'
      
"It's Python"
>>> 

 

(3)当字符串中有反斜杠时,可能会构成一个不可打印的字符

>>> string = 'C:\now'
      
>>> string
      
'C:\now'
>>> print(string)
      
C:
ow

 

  这时候不仅可以使用反斜杠转义,也可以使用原始字符串(在字符串前面加上一个英文字母r)

>>> string = 'C:\\now'
      
>>> string
      
'C:\\now'
>>> print(string)
      
C:\now

 

>>> string = r'C:\now'
      
>>> string
      
'C:\\now'
>>> print(string)
      
C:\now

 

4.字符串也可以进行加法和乘法运算

str1 = 'abc'
str2 = 'efg'
print(str1 + str2)
print(str1 * 5)


abcefg
abcabcabcabcabc

 

 

二、字符串的内置方法

字符串的内置方法有很多,具体可以去鱼c论坛上看,链接为https://fishc.com.cn/forum.php?mod=viewthread&tid=38992&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

这里我列举几个比较重要常用的内置方法

 

方法       含义
expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8
find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选
join(sub) 以字符串作为分隔符,插入到 sub 中所有的字符之间
replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
split(sep=None, maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表
strip([chars]) 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选


    

 

 

 

 

 

 

 

 

 


#列表(可变数据类型)

一、建立列表——列表中可以包含任何

list1 = [1, 2, "sdj", (1, 2)]
print(list1)

[
1, 2, 'sdj', (1, 2)]

 

二、列表时可以修改的,所以它允许增加删除列表中的元素等操作

1. 向列表中添加元素

(1)使用 append()方法在列表末尾追加数据(只能是一个数据)

list1 = [1, 2, "sdj", (1, 2)]
list1.append(3)
print(list1)


[1, 2, 'sdj', (1, 2), 3]

(2)extend()方法利用迭代的方式追加多组数据

list1 = [1, 2, "sdj", (1, 2)]
list1.extend("abc")
print(list1)


[1, 2, 'sdj', (1, 2), 'a', 'b', 'c']

 

(3)使用 insert()方法在指定位置添加一个新元素

list1 = [1, 2, "sdj", (1, 2)]
list1.insert(1, "qw")
print(list1)


[1, 'qw', 2, 'sdj', (1, 2)]

 

2. 从列表中删除数据

remove(value) 可以指定参数,当不指定参数时,默认删除在最后一个
pop(index = None) 可以指定弹出的陈述句的索引号,默认弹出最后一个,可以获取弹出的数据
del 可以删除列表索引出的数据

 

 

 

 

 

 

3. 列表其他的内置方法

clear() 清空列表中的元素
copy() 列表的软复制
count(value) 计算列表中指定元素的个数
index(value,star = None ,stop = None) 在指定范围内找出列表元素的索引号(所在列在中位置)
reverse() 将列表整个原定翻转
sort(key = None, reverse = False) 用指定的方式对列表的元素进行排序,默认从小到大

 

 

 

 

 

#元组(不可变数据类型)

一、,元祖和字符串一样是不可修改的,一旦修改就会报错

tuple1 = (11,22,33,44)
tuple1[2] = 55
print(tuple1)


TypeError: 'tuple' object does not support item assignment

 

二、元祖的内置方法

元祖的内置方法很少

count(value) 计算元组中指定元素的个数
index(value,star = None ,stop = None) 在指定范围内找出元组元素的索引号(所在元组中位置)

 

 

 

 

这里值得注意的是,元组不可修 是指元组元素不可修改,但是元组元素如果是可修改的数据类型,则元素中的元素可以修改,例如:

tuple1 = (123, "abc", ["jiang", 456, (1, 24)], "def")
tuple1[2][0] = "qwer"
print(tuple1)

输出的接结果为:
(123, 'abc', ['qwer', 456, (1, 24)], 'def')

 


 

#字典(不可变数据类型)

一、建立和访问字典

info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})
或
info=dict(name='egon',age=18,sex='male')
或
info=dict([['name','egon'],('age',18)])
或
{}.fromkeys(('name','age','sex'),None)

 


注意:列表,字典和集合不能作为字典的key,这和字典的储存方式有关

python 调用内部的散列函数,将键(Key)作为参数进行转换,得到一个唯一的地址(这也就解释了为什么给相同的键赋值会直接覆盖的原因,因为相同的键转换后的地址是一样滴),然后将值(Value)存放到该地址中。

对于 Python 来说,键(Key)必须是可哈希的,换句话说就是要可以通过散列函数计算出唯一地址的。那如果拿一个变量当键(Key)可以吗?肯定不行。因为变量随时都可能改变,不符合可哈希原则!

 

二、字典的各种内置方法

fromkeys(*args,**kwargs) 用于创建并返回一个新的字典,第一个参数是字典的键;第二个参数是可选的,如果不输入则返回None
clear() 清空字典中的元素
copy() 复制字典
get(k, d =None) 寻找并返回指定的值,如果找不到默认返回None,可自行设置第二个参数的值,使找不到是返回设置的值
keys() 返回字典中的键
values() 放回字典中的值
items() 返回字典中所有的键值对
pop(k, d =None) 弹出给定 键对应的值
popitem() 随机弹出一个项(键值对)
setdefault(k, d =None) 和get()方法类似,但是setfault()在字典中找不到相应的键时会自动添加
update(E=None ,**F) 用来更新字典

 

 

 

 

 

 

#集合(可变数据类型)

一、建立集合

set1 = {1, 3, "abc" }
set2 = set([1, 3, "abc" ])
print(set1)
print(set2)


{1, 'abc', 3}
{1, 'abc', 3}

 

二、集合中的元素是唯一的

set1 = {1, 3, "abc", 1, 3}
print(set1)


{1, 3, 'abc'}

 

三、集合中的元素只能是不可变数据类型

set1 = {1, 3, "abc", [1, 2]}
print(set1)


TypeError: unhashable type: 'list'

 

集合的内置方法就不多说了,具体可以ctrl+鼠标点击set去查看

posted @ 2019-11-07 22:02  想吃手抓饼  阅读(210)  评论(0编辑  收藏  举报