python基础学习笔记2

 

1、字符串常用方法

name1 = 'shuipingzuo'
print(name1.capitalize())    #将字符串首字母大写
print(name1.center(50,'*'))  #将字符串居中,50表示整个字符串长度50,如果字符串本身不够50,则后后面定义的*号前后补齐
print(name1.count('i'))   #查询指定字符串的次数
以上示例运行结果如下:

指定字符串以xxx开头或以xxx结尾的字符串方法:

name2 = '18612345678.jpg'
print(name2.endswith('.jpg')) #判断字符串是否以xxx开头,返回的是布尔类型结果,如果不是以这个结尾则返回False
print(name2.startswith('188')) #判断字符串是否以xxx结尾,返回的是布尔类型结果,如果不是以这个结尾则返回False

备注说明:布尔类型只有True或False,且在python中布尔类型首字母必须大写。

指定字符串转换为大写或小写的方法:

name3 = 'aaaUISDbbe'
print(name3.upper()) #将字符串变成大写的
print(name3.lower())
#将字符串变成小写的

name4 = 'ppeqewwre'
print(name4.find('p'))   #获取文字符串的下标,如果找不到指定字符串的原型,则返回-1,所以常用是此方法
print(name4.index('p'))  #获取字符串的下标,如果找不到指定字符串的元素,则会报错,此方法不常用

name5 = 'a11112332ssssssd'
print(name5.isdigit()) #判断是否为纯数字,返回的是布尔类型的结果
print(name5.isidentifier()) #判断它是不是一个合法的变量名,返回的是布尔类型的结果,此方法不常用
print(name5.isspace()) #判断是否全都是空格,返回的是布尔类型的结果
print(name5.isalnum()) #只有英文或数字才返回True
print(name5.isalpha()) #只有英文或汉字才返回True
print(name5.istitle()) #判断字符串是否为标题,如果首字母大写,不常用

name6 = ' aaabbb\ncccd '
print('打印结果1:',name6.strip()) #去掉字符串两边指定的字符串,如果strip()的括号里为空,默认去掉两边的空格和换行符
print('打印结果2:',name6.lstrip()) #只去掉字符串左边指定的字符串
print('打印结果3:',name6.rstrip()) #只去掉字符串右边指定的字符串

name7 = 'aaa3232ddddaaaabaaa'
print(name7.replace('aaa','bbb'))    #替换字符串,把前面的替换成后面的,如果前面的不包含在字符串中,则不进行替换
print(name7.replace('aaa','bbb',2))  #后面的数字表示替换几次,如果不写,表示全部替换

字符串分割:

name8 ='''
test1
test2
test3
test4
'''
print(name8.split())     #分割字符串,把字符串变成一个list,默认以空格和换行符分割

name9 = '''test1,test2,test3'''    
print(name9.split(','))     #此方式如果是逗号分开字符串的,则如果直接使用splist()去分割的话,分割完list中只有一个元素,如果要分成三个,则以逗号作为分割符即可

name10 = '5'
print(name10.zfill(2))    #将字符串前面补0,数字2表示字符串长度为2,如果字符串只有1位,则表示'05',如果字符串本来有2位,则长度已达到2位,此处不再补0;

stus = ['test1', 'test2', 'test3', 'test4']
print('、'.join(stus))      #把list变成字符串的,以某个字符串连接,返回的是一个字符串;此示例中以顿号将字符串进行连接

 

import string
print(string.ascii_letters)     #获取26个大、小写英文字母
print(string.ascii_lowercase)   #获取26个小写英文字母
print(string.ascii_uppercase)   #获取26个大写英文字母
print(string.digits)            #获取0-9的数字
print(string.punctuation)       #获取所有的特殊字符

列表与字符串进行for循环都是通过下表获取对应的元素值示例:

stu = ['test1','test2','test3','test4','test5']
for i in stu:
    print(i)

for i in range(len(stu)):
    print(str(i)+'对应的值'+str(stu[i]))

stus = 'haha呵呵'
for
stu in stus:
    print(stu)

2 、切片

切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样。

import string
num = list(string.digits)       #强制类型转换,将一个字符串强制转换为列表
print(num)
print(num[0:11:2])      #最后一个数字表示步长,隔几个取一次,默认不写是隔一个取一次
print(num[::-2])        #如果步长是负数,就从右往左开始取值,数值扔表示步长,默认是从左往右取值
# 步长为负
#    前面两个都不写:则取反
#    写第一个,第二个不写:从第一个向左取
#    写第二个,第一个不写:从第二个向左取
#    写两个:开始位置在结束位置的左侧:取不到
#    写两个:开始位置在结束位置右侧:从右往左取

3、元组

元组,也是一个list,但它是不可变的,即元组一旦创建好之后,就不能修改元组中的值;

#元组,元组也是一个list,但它是不可变的
cities = ('beijing','shanghai')     #元组一旦定义好,就不能再变了
print(cities[0])
print(cities.count('beijing'))
print(cities.index('beijing'))

字符串也是一个不可变的类型,一旦定义好,就不能修改

s = 'test1,test2'
s[0] = 'test3'      #字符串也是不可变的类型,一旦定义好,就不能修改
s = 'test3'         #此方法表示重新赋值

s1 = 'abcEFGabc'
s1.replace('abc','')    #如果使用此方法,必须将该修改赋值给一个新的变量,即s2 = s1.replace('abc','')
print(s1)       #运行之后返回的s1值仍为abcEFGabc

 列表可变的示例:

a = [1,1,2,3,4,5,6,72]
#a的下标分别为0,1,2,3,4,5,6,7
#当第一次循环的时候,下标为0的元素值为1,被移除,第二次循环的时候下标已经变化了,所以第二个元素1的下标在第二次循环时变成0,被跳过了
#示例1
b = [1,1,2,3,4,5,6,72]      #使用此方法可以将a中的两个元素1被删除掉了,b和a的值一样,在b中找到要删的值,再去a中找到那个值去删掉
#示例2
b = a     #使用此方法仍然不会删除掉
#示例3
b = a[:]    #使用此方法效果与示例1的结果一致
#
print(id(a))    #打印a的内存地址
print(id(b))    #打印b的内存地址
#
for i in b:         #i是list中的元素,并非下标,只是通过下标进行遍历
   
if i%2 != 0:
        a.remove(i)
print(a)

说明:由于上述代码有简化,按实际示例分别运行如下:

字符串不可变的示例:

 a = 'haha'
b = a
print(id(a))    #打印a的内存地址
print(id(b))    #打印b的内存地址
a = 'asss'
print(id(a))    #打印a的内存地址
print(id(b))    #打印b的内存地址

#变量定义
#方法一:
a,b,c,d = 1,2,3,4
#方法二:
a = b = c = d = 0
#方法三:
a = 1

#示例1
a,b = 1,2
#不引入第三方变量的方式把a,b交换
#方法1:
b,a = a,b
print(a,b)

#方法2:  此方法是在较简单的运算中使用
a = 1
b = 2
a = a+b
b = a-b
a = a-b
print(a,b)

#非空即真,非0即真
#
实现同样的功能,代码越少越牛逼
a = []
b = ''
print(not b)     #not的意思是取反
c = ()
d = 0
e = None    #表示空
if a or b or c or d or e:
    print('真的')
else:
    print('假的')

 

4、字典

字典的定义使用{},大括号,每个值用逗号“,”隔开,key和value使用冒号“:”分隔;

字典是无序的,因为字典是通过key取值的,所有没有顺序,每次打印顺序都会变化;

字典存储是key:value格式存储的,字典里的key不能重复必须唯一;

#字典存储是key:value格式存储的,字典里的key不能重复必须唯一
a = {'name':'张三',
'age':19,
'sex':'男',
'qq':123344,
'email':'[email protected]'
}
print(a)

#字典增加key:value
#
方法1
a['女朋友'] = '很漂亮'
print('字典增加1',a)

#方法2
a.setdefault('house','三环里有一套')
print('字典增加2',a)

#字典修改
a['age'] = 38 #字典中没有的话增加,有的话修改值
print(a)

#字典删除
#方法1:
a.pop('qq') #删除时,如果key不存在,会报错
print('字典删除1:',a)
#方法2:
a.popitem() #随机删除一个key
print('字典删除2:',a)
#方法3:
del a['age'] #删除时,如果key不存在,会报错
print('字典删除3:',a)

#字典取值
print(a['name']) #取值如果key不存在,会报错

print(a.get('email1','[email protected]')) #取值如果key不存在,会返回一个None,如果get不到key可以给一个默认值;

 

#将b字典中的值添加到a字典中去
b = {'youxi':'2小时'}
a.update(b) #把一个字典加入到另一个字典里面,此处是将字典b添加到a中去,如果两个字典中有重复的key,则将第二个字典中的值覆盖原有的
print('字典b中的值添加至a中:',a)

#打印a中的key和value值
print(a.keys())
print(a.values())

#清空字典
a.clear()

for i in a:
print(i) #循环打印的是字典的key

for j in a.items(): #循环中使用.items()方法可以同时获取字典中的key和value
print(j)






猜你喜欢

转载自www.cnblogs.com/better0903/p/9131243.html
今日推荐