1 字符串类型
在python中字符串类型用str表示,字符串的连接用 +
1.1 创建字符串对象
·创建一个字符串对象有两种方式,一种方式是直接用字符串进行赋值,另外一种是利用str类实例化对象;具体格式如下:
a = str("warrior")print("变量a的值为:", a)print("变量a的类型为:", type(a))
b = "fury"print("变量的值为:", b)print("变量b的类型为:", type(b))
1.2 字符串对象常用的方法
1.2.1 title()
返回原字符串中的所有单词的首字母大写后的的字符串,常用于标题的显示
def title(self): # real signature unknown; restored from __doc__ """ S.title() -> str Return a titlecased version of S, i.e. words start with title case characters, all remaining cased characters have lower case. """ return ""
1.2.2 upper()
将字符串全部转化成大写,数据在存储前通常先转化成大写或者小写在存储,显示时再转化成想要的格式进行输出
def upper(self): # real signature unknown; restored from __doc__ """ S.upper() -> str Return a copy of S converted to uppercase. """ return ""
1.2.3 isupper()
判断字符串是否全部都是大写
def isupper(self): # real signature unknown; restored from __doc__ """ B.isupper() -> bool Return True if all cased characters in B are uppercase and there is at least one cased character in B, False otherwise. """ return False
1.2.4 casefold()
在对量个字符串进行比较的时候如果不区分大小写时需要用到
def casefold(self): # real signature unknown; restored from __doc__ """ S.casefold() -> str Return a version of S suitable for caseless comparisons. """ return ""
1.2.5 center()
字符串输出填充用的
def center(self, width, fillchar=None): # real signature unknown; restored from __doc__ """ S.center(width[, fillchar]) -> str Return S centered in a string of length width. Padding is done using the specified fill character (default is a space) """ return ""
1.2.6 strip()
去掉字符串两边的空白
def strip(self, chars=None): # real signature unknown; restored from __doc__ """ S.strip([chars]) -> str Return a copy of the string S with leading and trailing whitespace removed. If chars is given and not None, remove characters in chars instead. """ return ""
1.3 小练习
1.3.1 姓名格式化
需求:将用户输入的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello XXX, would you like to learn some Python today?”;要求用户的姓名在进行输出时必须是每个单词首字母大写。
拓展:姓名分别一小写、大写显示
1.4 格式化
字符串在进行输出时常常需要进行一些格式化,这样可以提高代码的可读性,在Python中支持两种格式化方法
1.4.1 利用占位符实现
技巧01:如果不确定该用那种占位符,用%s永远都会起作用
这种方法的和C语言类似,常见的占位符有
%d -> 整数
%f -> 浮点数
%s -> 字符串
%x -> 十六进制整数
技巧02:整数可以设定整数位数,浮点型可以设置小数位数
如果传入的数字不够指定位数时默认用空格代替或者指定用0代替
1.4.2 利用字符串格式化函数实现
format是python字符串类型中的一个字符串格式化函数
def format(self, *args, **kwargs): # known special case of str.format """ S.format(*args, **kwargs) -> str Return a formatted version of S, using substitutions from args and kwargs. The substitutions are identified by braces ('{' and '}'). """ pass
2 强制类型转化
“123” + 4 这样的表达式有两层意思:一层是将4看成是字符串,+ 进行字符串的拼接;另外一层是将“123”看成整型,+ 进行数学运算;在python3中会理解成前面一种,但是python3会检测到错误,因为python3在利用 + 进行字符串的拼接操作时两边必须都是字符串类型,否则会报类型错误:
2.1 强制类型转化的格式
数据类型(带转化的数据)
2.2 小练习
2.2.1 计算圆的周长、面积
需求:手动输入圆的半径,自动计算出圆的直径、周长、面积
3 列表
列表由一系列按特定顺序排列的元素组成。可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
3.1 列表表示
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。
list = ['warrior', 'fury', 123, ['peter', 'bob']]print(list)
3.2 访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。 要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
技巧01:列表的索引好是从0开始的
技巧02:请求获取列表元素时,Python只返回该元素,而不包 括方括号和引号
技巧03:通过将索引指定为-1,可让Python返 回最后一个列表元素
3.3 小练习01
3.3.1 依次访问列表元素
需求:创建一个名为students的学生列表,该列表中国存放的是学生的姓名,依次访问学生列表中的所有元素并进行格式化输出
students = ["warrior", "peter", "bob", "zeus"]for i in students: print(i.title())
3.3.2 添加问候语
需求:依次访问studnets列表中的所有元素,在输出时添加问候语,例如: XXX, 欢迎你
3.4 修改、添加、删除列表元素
3.4.1 修改列表元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改 的元素的索引,再指定该元素的新值。
技巧01:修改列表元素的值并不会改变列表变量的值,因为列表变量的值存放的是对象的引用(即:存放的是地址)
技巧02:修改雷彪元素的值,那么该列表元素的值会发生变化,因为该元素的指向发生了变化,元素变量中存放的对象引用也就发生了变化;但是列表变量的值是不会发生变化的,但是对列表进行输出时会发生变化,因为虽然列表变量存放的是对象的引用,而这个引用中的内容发生了变化,所以输出列表时发生了变化
坑01:在python中一切皆对象,所以变量存放的是对象的引用(即:对象的地址),在输出变量时python会根据这个引用去找到对应的对象,然后进行输出
坑02:id is == 之间的区别
id -> 变量地址
is -> 比较两个变量指向的对象的地址
== -> 比较两个变量指向对象的内容
3.4.2 在列表中添加元素
技巧01:添加元素后列表变量的对象指向没有变,列表变量的地址也没有变
》在列表末尾添加元素
方法append()将元素 'XXX' 添加到了列表末尾,方法append()让动态地创建列表易如反掌,例如,你可以先创建一个空列表,再使用一系列的 append()语句添加元素。
》在列表中添加元素
利用issert()方法在列表中添加元素,例如:insert(1, "fury") -> 在列表的第二个元素位置处添加 “fury”, 原来第二个位置及之后的位置都会向后移动一个位置
3.4.3 删除列表元素
》使用del语句删除元素
知道要删除的元素在列表中的位置,可使用del语句去删除该元素
》使用pop()删除列表元素
要将元素从列表中删除,并接着使用它的值时通常使用pop()实现;方法pop()可删除列表末尾的元素,并让你能够接着使用它。
坑01:使用了pop()后,被弹出的元素就在列表中了
技巧01可以使用pop()来删除列表中任何位置的元素
》根据值删除元素
只知道要删除的元素的值,可使 用方法remove()删除指定元素
技巧01:remove()一次只能删除一个,如果一个列表中有多个值相同的元素,那么就必须要用循环来解决
3.5 小练习02
TODO:2018-3-23 09:53:27
3.5.1 嘉宾名单
需求:动态添加嘉宾名单,要求利用输入的形式
3.5.2 修改嘉宾名单
需求:要求利用手动输入形式
3.5.3 添加嘉宾名单
需求:要求利用手动输入的形式
3.5.4 删除嘉宾名单
3.6 列表排序
3.6.1 永久排序
使用方法 sort()对列表进行永久性排序
3.6.2 临时排序
使用函数 sorted()对列表进行临时排序
3.6.3 倒序输出
要反转列表元素的排列顺序,可使用方法reverse()
3.6.4 确定列表长度
使用函数len()可快速获悉列表的长度
3.7 小练习03
3.7 利用range产生数字列表
详情请参见 range 相关的博文
3.8 列表的使用
3.8.1 切片
如果要使用一个列表中连续几个元素的数据就需要用到切片
技巧01:切片索引包含开始索引但是不包含结束索引
技巧02:如果不指定开始索引,就会从第一个元素开始取值;如果不指定结束索引,就会去到列表的最后一个元素;如果前后索引都指定就会取到所有的列表元素
技巧03:遍历得到的结果任然是一个列表
3.8.2 复制列表
技巧01:列表复制时直接使用全切片的方式即可
根据 id 值可以看出 lis01 和 lis02 引用的是不同的对象,只不过这两个对象的值是相同的而已
坑01:如果直接利用 = ,执行的就不是复制而是赋值,此时 lis01 和 lis02 的 id 值就相等了,这就说明 lis01 和 lis02 引用的是同一个对象
4 元组
4.1 定义
元组看起来就行列表,只不过用的是圆括号而不是方括号,同样可以使用索引进行取值;但是和列表不同的是元组中的元素不可以修改而列表中的元素可以进行修改
4.2 创建元组对象
4.2.1 利用 ()进行创建
直接将数据放到()中利用逗号隔开就可以啦,例如
坑01:利用()创建只有一个元素的元组时必须在后面加一个逗号,否则这个括号就会别看做是数学运算优先级的括号
4.2.2 利用 tuple() 进行创建
5 字典
5.1 字典的创建
字典是通过key-value值进行存储数据的,其中key必须是不可变对象,而且一个自定汇总key值不能重复
5.1.1 直接利用 { } 创建
5.2 获取字典中的值
可以像列表那样获取字典中的值,只不过列表是利用下标进行获取的而字典是利用key值进行获取的;字典也可以通过字典对象的get函数获取字典中的值
技巧01:利用key值进行获取字典中的数据是,如果key值不在字典中就会报错;但是利用get进行获取时如果key值不存在就会默认返回None,当然get函数也可以自定义key值不存在时的返回结果
5.3 向字典中添加值
字典对象引用 [ 新增的key值 ] = key值对应的value值
技巧01:如果要新增的key已经在字典对象引用中存在了,那么就会对key对应的value值进行更新,而不会进行新增操作,因为字典的key值必须是唯一的
6 集合
集合类似于列表,但是集合中的内容是不能重复的,而且集合跟字典一样都是无序的,即使在创建或者新增元素时出现了重复值也不会生效,最终在集合中只能有一个
6.1 创建集合
6.2 添加删除元素
6.2.1 添加元素
利用集合对象的add函数可以向集合中添加元素
6.2.2 删除元素
利用集合对象的remove函数可以从集合中删除元素
技巧01:如果需要删除的元素不在集合中就会报错