整形(不可变,存储一个值)

对于int类型的解释

把一个数字或者字符串转换成整形,如果没有参数就返回0,如果参数是一个数字,那么就不变。对于浮点型,会自动省略小数点后面的值
Convert a number or string to an integer, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero.
     # 这个主要说的是进制转换的方法,默认base为10是十进制的 If x
is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in the given base. The literal can be preceded by '+' or '-' and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int('0b100', base=0) 4 # (copied from class doc)

赋值操作

number = 10 # python在声明变量的时候不需要声明变量的类型,会进行自动的转换,其实这个就是执行了number = int(10)

转换操作,如下图所示,如果转换的是number,int括号里面可以为整形也可为浮点型,如果转换的是str,括号里面的字符串必须只能包含整数,负责会报错。如果int里面什么都没有,会返回0。

第5天数据类型之整形,字符串和列表-LMLPHP

十进制转换成其他进制的方法

# 系统自带的一写内置函数会给我们用来对十进制到其他进制的转换
print
(bin(256)) # 十进制转换成二进制print(oct(256)) # 十进制转换成八进制print(hex(256)) # 十进制转换成十六进制

其他进制转换成十进制的方法

# 其他进制转换成字符串的时候传入的第一个参数必须是字符串类型
# 第一个参数代表的是多少进制的数,后面的参数代表的是进制
print(int('56', 10)) # 10进制的数56要转换成10进制print(int('0101', 2)) # 二进制的数0101要转换成10进制print(int('56', 8)) # 八进制的数56要转换成十进制print(int('56', 16)) # 16进制的数56要转换成十进制

浮点型(不可变,可存储一个值)

python关于浮点型的解释

# 和整形其实是一样的,如果可以转换就用来转换一个数字和字符串为浮点型的数据
Convert a string or number to a floating point number, if possible.

浮点型的赋值操作

float_number = 1.2

浮点型的转换操作,转换操作大部分和int是类似的,不同的是float里面字符的可以是浮点型的.当传递的值为空的时候返回为0.0 。

第5天数据类型之整形,字符串和列表-LMLPHP

字符串(不可变,有序,可存储多个值)

取值和切片

从前往后面进行取值和切片的,取值就是根据字符串的索引来取的,字符串的切片默认取左不取右的,例如图中的s[0::1]和s[0:-1:1]通过结果可以看出来,s[0:-1:1]是取不到最后一个字符的

第5天数据类型之整形,字符串和列表-LMLPHP

除了从前往后取值之外,还有从后往前取值的,很简单,就是步长变成负的就可以了,但是要强调的一点是s[参数一:参数二: 参数三]中的三个参数是有一定的逻辑的,当参数一:参数二本身是从前往后的话,参数三就必须是正数,当参数一到参数二是从后往前的话,参数三就必须是复数了。否则是取不到值的。如下图所示:0: -1 是从前往后的,但是参数三却是-1,-1:0是从后往前的,但是参数三确实1,所以取不到数据。

 第5天数据类型之整形,字符串和列表-LMLPHP

strip方法:(lstrip去除左边的指定字符,rstrip去除右边的指定字符)

# strip就是去除字符串两边的指定的字符s1 = 'hello, world, 胡 'a = s1.strip() # 默认为去除字符串两边的空格print(a)s2 = '*h^ello, wor,ld, , 胡*'a = s2.strip(' ,,*胡') # 只要是有的字符都会去除,只有等到没有了才会停止print(a)
s2.strip("") # 这个会返回一个原来的字符串

split方法:(可以看作是str转化成列表的方法), rsplit从右边开始切片

#split分割会返回一个里面都是字符串的列表s = '*hello**world*nihao*'s1 = s.split('*') #从左往右以*分割print(s1)s2 = s.split('**') # 从左往右以**分割print(s2)s3 = s.split('*', 2) # 从左往右以*为分割点分割两次print(s3)# 运行结果:['', 'hello', '', 'world', 'nihao', '']['*hello', 'world*nihao*']['', 'hello', '*world*nihao*']

print(s.split("")) # 和strip不一样,这样子写会报错

join方法(列表,元祖,字典转换成str的方法)

join可以拼接一个可迭代对象,例如列表,元祖,字典,集合等,但是无论是哪种类型,里面的值必须是字符串类型的才可以进行拼接,否则会报错。

 第5天数据类型之整形,字符串和列表-LMLPHP

endswith, startwith

s = 'hello, world'print(s.endswith('d', 0, -1)) # 从0到-1结束是否是以d结尾的print(s.startswith('h', 0, -1)) # 从0到-1结束是否是以d开头的# 结果:FalseTrue

replace 替换方法

s = 'hello, hh 'r = s.replace('h', 'H', 2) # 参数一为旧的,参数二为新的,参数三为替换的个数print(r)

upper和lower方法

# upper全部变成大写,lower全部变成小写
a = 'hello, World! 中国 'print(a.upper())print(a.lower())# 显示结果:HELLO, WORLD! 中国hello, world! 中国

format方法

有了%的格式化输出为什么还要format呢?如下图,用%格式化写起来就比较麻烦了,而且还要对准位置。

a = '''你好,{name},你今年{age}了。你好,{name},你今年{age}了。你好,{name},你今年{age}了。你好,{name},你今年{age}了。'''.format(name='hu', age=123)print(a)

index, find, rfind, rindex位置查询

# index, find 都是字符所在的位置,index找不到的时候会报错,find找不到的时候返回-1, 因此以后呀多用find,少用indexs = 'hello, world!'res1 = s.index('h', 0, 6)res2 = s.find('h', 0, 6)res3 = s.find('h0', 0, 6)print(res1, res2, res3)res4 = s.index('ho', 0, 6)

# rfind和rindex其实就是在寻着索引的时候有时候会遇到多个,rfind和rindex其实就是去找最后一个的索引所在的位置

captilize, title,swapcase

# capptalize首字母大写,如果首字母是特殊字符就不变 title每个单词首字母大写,以特殊字符分割的都是一个单词,swapcase大小写的反转s = 'hello*wor.ld!'print(s.capitalize())print(s.title())print(s.swapcase())# 结果展示 Hello*wor.ld!Hello*Wor.Ld!HELLO*WOR.LD!

center, ljust, rjust, zfill填充

# center,ljust,rjust,zfills = 'hello'print(s.center(6, '*')) # 参数一代表的是长度,参数二代表的是填充的字符print(s.ljust(10, '*'))print(s.rjust(10, '*'))print(s.zfill(6))# 结果:hello*hello**********hello0hello

字符串练习题:(附答案)

第5天数据类型之整形,字符串和列表-LMLPHP第5天数据类型之整形,字符串和列表-LMLPHP

# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)name = " aleX"# 1) 移除 name 变量对应的值两边的空格,并输出处理结果print(name.strip())# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果print(name.startswith('al'))# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果print(name.endswith('X'))# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果print(name.replace('l', 'p'))# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。print(name.split('l'))# 6) 将 name 变量对应的值变大写,并输出结果print(name.upper())# 7) 将 name 变量对应的值变小写,并输出结果print(name.lower())# 8) 请输出 name 变量对应的值的第 2 个字符?print(name[1])# 9) 请输出 name 变量对应的值的前 3 个字符?print(name[0:3])# 10) 请输出 name 变量对应的值的后 2 个字符?print(name[-1:-3:-1])# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?print(name.find('e'))# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。print(name[0:-1])

View Code

列表(可变,有序,可存储多个值)

列表的创建

l = [1, 2, 3] # ==》 l = list([1,2,3])

列表的转换

只要是可迭代类型的数据都是可以转换成列表的,例如: 元组,字典,字符串都是可以转换成列表的,但是整形和浮点型不行,因为他们不可迭代

第5天数据类型之整形,字符串和列表-LMLPHP

列表的索引和切片和字符串的都是一样的,此处不再赘述。其中列表是可以通过索引进行修改数据的,但是字符串不能修改。虽然可以修改数据,但是列表却不能通过索引去添加新的值。因此需要通过方法去添加值。

第5天数据类型之整形,字符串和列表-LMLPHP

列表的方法

修改法:del, append, insert, extend, remove,  pop

第5天数据类型之整形,字符串和列表-LMLPHP第5天数据类型之整形,字符串和列表-LMLPHP

l = [1, 2, 3]l.append('h')l.append(['a', 'b', 'c'])l.append(('a', 'b', 'c'))l.append('str')l.append({'a': 1})print(l)# 显示结果[1, 2, 3, 'h', ['a', 'b', 'c'], ('a', 'b', 'c'), 'str', {'a': 1}]

# append把整体的一个输入追加到列表的最后
第5天数据类型之整形,字符串和列表-LMLPHP第5天数据类型之整形,字符串和列表-LMLPHP

l = [1, 2, 3]l.insert(0, 'h')l.insert(0, ['a', 'b', 'c'])l.insert(0, ('a', 'b', 'c'))l.insert(0, 'str')l.insert(0, {'a': 1})print(l)# 展示的结果[{'a': 1}, 'str', ('a', 'b', 'c'), ['a', 'b', 'c'], 'h', 1, 2, 3]

# insert在指定的位置把整体的数据添加进去
第5天数据类型之整形,字符串和列表-LMLPHP第5天数据类型之整形,字符串和列表-LMLPHP

l = [1, 2, 3]l.extend('h')l.extend(['a', 'b', 'c'])l.extend(('a', 'b', 'c'))l.extend('str')l.extend({'a': 1})print(l)# 展示结果# [1, 2, 3, 'h', 'a', 'b', 'c', 'a', 'b', 'c', 's', 't', 'r', 'a']

# extend会把可迭代对象一个一个的追加到列表当中

# remove, pop, dell = ['a', 'b', 'c', 'd', 'e']del l[0] # 遭到列表中的值并删除掉res = l.pop(0) # 根据索引删除值并且有返回值的l.remove('e') # 根据列表中的内容删除值,没有返回值print(l, res)# 结果:# ['c', 'd'] b

索引index  计数count(和字符串的方法是一样的)

a = [1, 2, 3, 1, 2, 3, 1, 2, 3, 4]print(a.index(4, 0)) # 一个是取索引print(a.count(4)) # 一个是计数

排序sort    反转reverse

sort只能排序全部都是数字或者字母的列表,否则会出现错误,反转是都可以的

第5天数据类型之整形,字符串和列表-LMLPHP

复制copy  清空clear 

a = [1, 2, 3]b = a.copy() # 复制了一个a列表print(b)b.clear() # 把b给清空掉print(b)

09-30 21:46