小笨蛋学习python第二集

(2)Python基础知识篇

本节知识点:
一、字符串
二、列表
三、元组
四、字典
五、集合
列表、元组、字典三者比较

正文
一、字符串(str)
1、定义:单引号、双引号、三引号包围起来的字符组,例如下面这些:

#字符串
name="zs"
my_gender='female'
print("""hello world""")

2、下标:下标就是编号的意思,类似于电影院的编号。在Python中经常需要用下标来找到对应的元素。注意:下标索引从0开始,而不是1开始,所以想要取第一个元素,需要取0下标。例如想要取到名字Bonnie里面的B:

name='Bonnie'
print(name[0])
输出:
	B

3、切片:如果想要一段元素需要用到切片,切片是对指对操作对象截取其中一部分的操作,字符串、列表、元组都支持切片。
语法;[起始位置:结束位置:步长],支持负数。

name="Bonmie"
print(name[:2])#取下标开始到2的字符
print(name[1:])#取下标1开始到结尾的字符
print(name[1:5])#取下标1开始到下标5的字符
print(name[:-2])#取下标开始到倒数第2个字符
print(name[-1:-5:-2])
输出:
	Bo
	onmie
	onmi
	Bonm
	em

4、字符串常见操作:使用字符串my_str="hello world kjb"为例;
find:用于检测str是否包含在my_str中,如果是返回检测到的开始的下标即索引,如果没有则返回-1。

#find
my_str="hello world kjb"
my_str.find("world",0,15)
输出:
	6

index:功能同find,但如果没有检测到,这不会返回-1,而是报错:ValueError: substring not found

my_str="hello world kjb"
my_str.index("world",0,2)
输出:
	ValueError: substring not found

count:用于计算字符串在开始和结束之间出现的次数

my_str="hello world kjb"
my_str.count("o",0,12)
输出:
	2

replace:把my_str中的str1替换成str2

my_str="hello world kjb"
my_str.replace("o","m")
输出:
	'hellm wmrld kjb'

split方法:以str为分隔切片my_str,包含两个参数,前者指定以什么作为分隔符,后者maxsplit代表最多分几份,如果参数为3,实际上结果是分成2份,即参数为n-1,结果为n;

my_str="hello world kjb"
my_str.split(" ",1)
输出:['hello', 'world kjb']

title和capitalize方法:将首字母大写,二者有所区别,见代码。

#将字符串所有开头的字母转换为大写
my_str="hello world kjb"
my_str.title()
输出:'Hello World Kjb'

#将字符串开头的字母转换为大写
my_str="hello world kjb"
my_str.capitalize()
输出:'Hello world kjb'

lower\upper方法:将字符串中的所有字符小写或者大写

my_str="Hello world binnie"
my_str.upper()
print(my_str.upper())
my_str.lower()
print(my_str.lower())

输出:
	HELLO WORLD BINNIE
	hello world binnie

startwith\endwith方法:检查字符是否以什么字符串开始或结尾,如果是,返回True,反之。

my_str="hello world kjb"
#startwith检查字符是否以“hello”开始
my_str.startswith("hello")
返回:True

字符串的操作方法还有很多很多,比如join、partition、strip等;如果想要查看这个操作符的具体用法,可以使用help(str.join)方法来查看,Python会给出官方解释,比如:

help("hello".split)
#输出:下面这堆英文它会告诉你这个函数怎么使用,里面的参数代表什么
Help on built-in function split:
split(sep=None, maxsplit=-1) method of builtins.str instance
    Return a list of the words in the string, using sep as the delimiter string.
  sep
      The delimiter according which to split the string.
      None (the default value) means split according to any whitespace,
      and discard empty strings from the result.
    maxsplit
      Maximum number of splits to do.
      -1 (the default value) means no limit.

二、列表(list)
1、列表定义:是一种有序的集合,可以随时添加、删除其中的元素,使用方括号,并用逗号隔开。列表内的类型可以不相同,比如可以既有int,又有str,tuple等。

list_1=[1,"abc",(1,2)] 
print(type(list_1))
输出:<class 'list'>

2、列表的常见操作
len:获取列表长度

list_1=[1,"abc",(1,2)] 
len(list_1)
输出:3

使用索引来获取列表中的元素:

list_1=[1,"abc",(1,2)] 
print(list_1[2])
输出:(1,2

当索引超出范围时,会报一个IndexError错误: list index out of range

list_1=[1,"abc",(1,2)] 
print(list_1[3])
输出:IndexError: list index out of range

注意:列表也可以取负向索引

list_1=[1,"abc",(1,2)] 
print(list_1[-1])
输出:(1,2

列表切片:[起始位置:结束位置:步长]
#列表切片

list_1=[1,"abc",13,2,99,0] 
print(list_1[0:4:3])
输出:[1,2]

向列表添加元素:append\insert\extend

stu_name=["mike","Bob","mary"]
print("----添加之前,列表的数据----")
for i in stu_name:
    print(i)    
new_name=input("请输入要添加的学生姓名: ")
stu_name.append(new_name)
print("----添加之后,列表的数据----")
for i in stu_name:
    print(i)
 输出:
	 ----添加之前,列表的数据----
	mike
	Bob
	mary
	请输入要添加的学生姓名: haha
	----添加之后,列表的数据----
	mike
	Bob
	mary
	haha

extend:可以将一个集合元素添加到另一列表中。

a=[1,2,3]
b=[4,5,6]
a.append(b) 
print(a)
a.extend(b)
print(a)

输出:
	[1, 2, 3, [4, 5, 6]]
	[1, 2, 3, [4, 5, 6], 4, 5, 6]

insert:可以将值插入到指定位置,参数中后者为插入的值,前者为插入的位置。

a=[1,2,3]
b=[4,5,6]
a.insert(1,0)#将0插入到索引为1的位置;
b.insert(0,99)#将99插入到索引为0的位置
print(a,b)

输出:
[1, 0, 2, 3]
[99, 4, 5, 6]

修改列表元素:需要借助下标来确定修改的位置。

#列表修改元素:
stu_name=["mike","Bob","mary"]
print("----修改之前,列表的数据----")
for i in stu_name:
    print(i)

#修改元素:
stu_name[1]="jack"

print("----修改之后,列表的数据----")
for i in stu_name:
    print(i)
输出:
	----添加之前,列表的数据----
	mike
	Bob
	mary
	----添加之后,列表的数据----
	mike
	jack
	mary

查找列表元素:in(存在) ,如果存在,结果为True,反之为False;
not in (不存在),如果不存在,结果为True,反之为False;

 #查找元素:in 或者not in 
name=["mike","jock","mary","Bob"]
findName=input("请输入要查找的姓名: ")
if findName in name:
    print("找到了") 
else:
    print("没有找到")
输出:
	请输入要查找的姓名: Bob
	找到了

删除列表元素:
常用方式有:
del:根据下标进行删除
pop:删除最后一个元素
remove:根据元素的值进行删除

#列表删除元素:
stu_name=["mike","Bob","mary"]
print("----删除之前,列表的数据----")
for i in stu_name:
    print(i)

#删除元素:
del stu_name[1]

print("----删除之后,列表的数据----")
for i in stu_name:
    print(i)	
输出:
   ----删除之前,列表的数据----
mike
Bob
mary
----删除之后,列表的数据----
mike
mary

使用pop删除最后一个元素:

#列表删除最后一个元素:
stu_name=["mike","Bob","mary"]
print("----删除之前,列表的数据----")
for i in stu_name:
    print(i)

#删除最后一个元素:
stu_name.pop()

print("----删除之后,列表的数据----")
for i in stu_name:
    print(i)
 输出:
	    ----删除之前,列表的数据----
		mike
		Bob
		mary
		----删除之后,列表的数据----
		mike
		Bob

使用remove移除列表元素:

stu_name=["mike","Bob","mary"]
print("----删除之前,列表的数据----")
for i in stu_name:
    print(i)

#移除元素:
stu_name.remove("Bob")

print("----删除之后,列表的数据----")
for i in stu_name:
    print(i)

输出:
		----删除之前,列表的数据----
		mike
		Bob
		mary
		----删除之后,列表的数据----
		mike
		mary

列表排序:使用sort对列表进行排序

a=[1,5,67,0] 
a.sort()
print(a)
输出:
	[0, 1, 5, 67]

列表逆置:使用reverse对列表进行逆置

b=[1,5,67,31] 
b.reverse()
print(b)
输出:
	[31, 67, 5, 1]

列表的遍历:
使用for循环:

#列表遍历
stu_name=["mike","Bob","mary"]
for name in stu_name:
    print(name)
输出:
	mike
	Bob
	mary
使用while循环:
stu_name=["mike","Bob","mary"]
length=len(stu_name)
i=0 
while i<length:
    print(stu_name[i])
    i=i+1
输出:
   	mike
	Bob
	mary

三、元组(tuple)
元组是另外一种有序列表,但元组一旦初始化后就不能进行更改了,没有append(),insert(),这样的方法,其他的和列表的使用方法相差无几。
如果元组只有一个元素的时候,要在元素后面加一个逗号,避免歧义。
最后来看一个可变的元组:

#可变的元组
t=("a","b",["a","b"])
t[2][0]="op"
t[2][1]="jk"
print(t)

输出:
	('a', 'b', ['op', 'jk'])

四、字典(dict)
1、字典:是一种可变容器,且可以存储任意类型对象;
语法:(key:value)

#获取key对应的value
name=["mike","Bob","mary"]
score=[79,98,90] 
d={"mike":79,"Bob":98,"mary":90}
d["mike"]

输出:79

2、字典常见操作
修改元素:只要能通过key找到的值,都可以修改

#修改字典
info={"name":"zs","id":100,"sex":"f","adress":"中国北京"}
new_id=input("请输入新的学号")
info["id"]=int(new_id)
print("修改之后的ID为:%d "%info["id"])

输出:
请输入新的学号99
修改之后的ID为:99 

添加元素:访问不存在的元素会报错
不存在,就会自动添加上这个元素

info={"name":"zs","sex":"f","adress":"中国北京"}
#print("id为:%d"%info["id"])
new_id=input("请输入新的学号")
info["id"]=int(new_id)
print("添加之后的ID为:%d "%info["id"])

输出:
请输入新的学号89
添加之后的ID为:89

删除元素:对字典进行删除
del:删除指定元素

#删除元素:对字典进行删除
#del:删除指定元素
info={"name":"zs","sex":"f","adress":"中国北京"}
print("删除前,%s" % info["name"])
del info["name"]
print(info)

输出:
删除前,zs
{'sex': 'f', 'adress': '中国北京'}

del删除整个字典

info={"name":"zs","sex":"f","adress":"中国北京"}
print("删除前,%s" % info)
del info 
print("删除后,%s"%info)

删除前,{'name': 'zs', 'sex': 'f', 'adress': '中国北京'}
-----------------------------------------------------------------------
输出:
NameError                                 Traceback (most recent call last)
<ipython-input-4-3e54007e1fa8> in <module>
      2 print("删除前,%s" % info)
      3 del info
----> 4 print("删除后,%s"%info)

NameError: name 'info' is not defined

clear清空整个字典

#clear清空整个字典
info={"name":"zs","sex":"f","adress":"中国北京"}
print("删除前,%s" % info)
info.clear() 
print("删除后,%s"%info)
输出:
	删除前,{'name': 'zs', 'sex': 'f', 'adress': '中国北京'}
	删除后,{}

len():查看键值对个数:

#查看字典键值对个数:
info={"name":"zs","sex":"f","adress":"中国北京"}
print(len(info))

输出:3

返回字典的所有key\value列表:

返回字典的所有的key列表:
info={"name":"zs","sex":"f","adress":"中国北京"}
print(list(info.keys()))
输出:['name', 'sex', 'adress']

返回字典的所有value列表:
info={"name":"zs","sex":"f","adress":"中国北京"}
print(list(info.values()))
输出:['zs', 'f', '中国北京']

#返回字典的所有键值对组合
info={"name":"zs","sex":"f","adress":"中国北京"}
print(list(info.items()))
输出:[('name', 'zs'), ('sex', 'f'), ('adress', '中国北京')]

五、集合
集合是一个无序的不重复元素序列
可以用大括号{}或者set函数创建集合,创建一个空的集合set,而不是{},因为{}是用来创建一个空字典。
字典不支持取下标:

#字典不支持取下标
my_set={1,5,7,"abc","hello"}
print(my_set[0])
输出:
-----------------------------------------------------
TypeError          Traceback (most recent call last)
<ipython-input-11-24f87fe4abb2> in <module>
      1 my_set={1,5,7,"abc","hello"}
----> 2 print(my_set[0])

TypeError: 'set' object is not subscriptable

通过遍历获取set集合里的数据

my_set={1,5,7,"abc","hello"}
for value in my_set:
    print(value)
print("-----------")    
my_set={1,5,7,"abc","hello"}
for index,value in enumerate(my_set):
    print(index,value)
输出:
1
5
7
hello
abc
-----------
0 1
1 5
2 7
3 hello
4 abc

set可以对列表去重

my_list=[1,1,3,5,6,8]
my_set=set(my_list)
print(my_set)
输出:{1, 3, 5, 6, 8}

六、三者比较:
列表、元组、字典常见操作与属性比较

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值