西安5期-胡亚伟 发表于 2022-7-18 21:26:09

PythonDay02

索引、切片、字符串函数、列表
'''
索引
str1 = "xian05"=可以通过索引的方式取字符串中的字符
通过索引取序列(字符串str,列表list,元组tuple)
索引分为:
正向索引:从0开始从左到右取值,
负向索引:从-1开始从右到左取值
索引的使用格式str1
'''
# str1 = 'duoceshi'
# print(str1)   # d
# print(str1[-1])# i
# print(str1)   # IndexError: string index out of range索引越界
# print(str1)   # e
# print(str1[-4])# e
# print(str1[-8])# d
# print(str1[-9])# IndexError: string index out of range索引越界

'''
切片
1,切片是建立在索引的基础之上的
2.切片的表达式→[开始索引:结束索引:步长]
3,取值取开始索引到结束索引的前一位(能取开始索引,不能取结束索引)
4,如果没有传入步长,则步长默认为1(正步长)
正步长:取值从左到右取值
不传入开始索引,则开始索引默认从0开始
不传入结束索引,则取值从开始索引到序列最后一个值
负步长:取值从右到左取值
不传入开始索引,则开始索引默认从-1开始
不传入结束索引,则从开始索引按照取值方向从右到左取值到序列的最左端
'''
# str1 = 'duoceshi'
# print(str1)# duoce,取值取开始索引到结束索引的前一位(能取开始索引,不能取结束索引)
# print(str1[:6])   # duoces
# print(str1)   # ceshi
# 给出一个字符串,取字符串最后两位:
# print(str1[-2:])    # hi
# print(str1)# 取全部duoceshi,不会报错,切片中没有索引越界的错
# print(str1)    # 结果为空
# print(str1[:])      # 取全部duoceshi,既不输入开始索引,也不输入结束所引
# print(str1[-6:-2])# oces
# -----------------------------------------------------------------
# str1 = 'duoceshi'
# print(str1)    # 结果为空
# print(str1)    # hseco
# print(str1[:4:-1])   # ihs
# print(str1)   # ecoud
# print(str[::-1])       # 序列翻转
# print(str1[-2:-6:-1])# hsec
# 跳切
# str1 = 'duoceshi'
# print(str1)   # uc

'''
字符串
定义:str
数据类型:str
'''
# 字符串的函数:
# 1.capitalize()函数,字符串的首字母大写
# str1 = "apple"
# print(str1.capitalize())   # Apple

# 2.title()函数,返回标题化的字符串,单词开头大写,其余小写
# str1 = "apple banana"
# print(str1.title())      # Apple Banana

# 3.count()函数,统计字符在字符串中出现的次数
# str1 = "banana"
# print(str1.count("a"))   # 3

# 4.join()函数,把字符串按照自定义的分隔符连接在一起
# str1 = "apple"
# print("_".join(str1))      # a_p_p_l_e

# 5.split()函数,通过某个字符进行分割,最终得到list列表
# str1 = "hello world"
# print(str1.split(" "))         # ['hello', 'world']
# print(type(str1))            # <class 'str'> type()函数查看数据类型
# print(type(str1.split(" ")))   # <class 'list'>
# list1 = str1.split(" ")
# print(list1)                   # ['hello', 'world']
# # 通过索引取值
# print(list1)   # 输出结果:hello
# print(list1)   # 输出结果:world
# 练习-----------------------------------------------
# 把字符串str1 = "user_name" 输出成UserName
# str1 = "user_name"
# list1 = str1.title().split('_')# ['User', 'Name']
# print(list1 + list1)       # UserName
# print(''.join(list1))            # UserName

# 6.strip()函数,删除字符串开头或结尾有a或b字符的
# str = "abcdefcba"
# print(str.strip("ab"))# cdefc
# print(str.strip("ba"))# cdefc

# 7.lstrip()函数,删除字符串开头有ab序列的字符
# str = "abcdefcba"
# print(str.lstrip("ab"))# cdefcba
# print(str.lstrip("ba"))# cdefcba

# 8.rstrip()函数,删除字符串结尾有ab序列的字符
# str = "abcdefcba"
# print(str.rstrip("ab"))# abcdefc
# print(str.rstrip("ba"))# abcdefc

# 9.startswith()判断字符串是否以什么开始==>返回布尔值
# str1 = 'abcdefg'
# print(str1.startswith('ab'))# True
# print(str1.startswith('ba'))# False

# 10.endswith()判断字符串是否以什么结束
# str1 = 'abcdefab'
# print(str1.endswith('ba'))# False
# print(str1.endswith('ab'))# True
# 应用-------------------------------------------
# lesson02.py
# file_name = input('请输入您需要上传的文件名称:')
# if file_name.endswith('.py'):
#   print('文件有效')
# else:
#   print('文件无效')

# 11.find(),字符串查询,从左到右,结果显示索引(下标)
# 可以在find()函数中加入参数开始索引与结束索引来限制查找范围
# str1 = 'abcabcabc'
# print(str1.find('c'))   # 2
# print(str1.find('c', 4))# 5
# 12.rfind(),字符串查询,从右到左,结果显示正向索引
# str1 = 'abcabcabcd'
# print(str1.rfind('c'))      # 8
# print(str1.rfind('d'))      # 9
# print(str1.rfind('c', -3))# 8

# 13.replace(),格式replace (substring, newstring, max)
# substring表示被替换字符串,newstring要替换字符串,max表示替换的次数
# str1 = 'abcabc'
# print(str1.replace('a', 'd'))      # dbcdbc,没有申明次数则全部替换
# print(str1.replace('a', 'd', 1))   # dbcabc
# print(str1.replace('a', ''))       # bcbc,使用空替换相当于将要替换的字符删除
# print(str1.replace('a', ' '))      #bc bc

# 14.lower(),转换字符串中所有大写字符为小写
# str1 = 'AbCdEf'
# print(str1.lower())   # abcdef
# str1 = 'AbCdEf123'
# print(str1.lower())   # abcdef123
# str1 = 'AbCdEf123##'
# print(str1.lower())   # abcdef123##
# 15.upper(),转换字符串中所有小写字符为大写
# str1 = 'AbCdEf'
# print(str1.upper())   # ABCDEF
# str1 = 'AbCdEf123'
# print(str1.upper())   # ABCDEF123
# str1 = 'AbCdEf123##'
# print(str1.upper())   # ABCDEF123##

# 16.isdigit(),判断字符串中是否全为数字
# str1 = '123456'
# print(str1.isdigit())# True
# str2 = '1a2b3'
# print(str2.isdigit())# False
# ---------------------------------------------------
# 给你一个字符串,你怎么去判断这个字符串是不是一个ip地址?
# str1 = '192.108.0.1'
# print(str1.split('.'))         # ['192', '108', '0', '1']
# print(''.join(str1.split('.')))# 19210801
# str2 = ''.join(str1.split('.'))
# print(str2.isdigit())            # True
# ---------------------------------------------------

# 17.isalpha(),判断字符串中是否全为字母
# str1 = 'abcdef'
# print(str1.isalpha())# True
# str2 = 'a1b2c'
# print(str2.isalpha())# False

# 18.isalnum(),判断字符串中是否全部为数字,全为字母,或者数字字母组合
# str1 = '123456'
# str2 = 'aBcDef'
# str3 = '1a2b3c'
# print(str1.isalnum())# True
# print(str2.isalnum())# True
# print(str3.isalnum())# True
# # 判断字符串中是否包含特殊字符
# str4 = '1a2b3#'
# print(str4.isalnum())# False

# 19.istitle(),判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否
# str1 = 'Abc'
# print(str1.istitle())# True
# str2 = 'AbC'
# print(str2.istitle())# False
# str3 = 'AbcDef'
# print(str3.istitle())# False
# str4 = 'Abc Def'
# print(str4.istitle())# True

# 20.isupper(),判断字符串是否全为大写
# str1 = 'ABCD'
# print(str1.isupper())# True
# str1 = 'ABcd'
# print(str1.isupper())# False
# str1 = 'ABC123'
# print(str1.isupper())# True
# str1 = 'ABC123#'
# print(str1.isupper())# True
# 21.islower(),判断字符串是否全为小写
# str1 = 'abcd'
# print(str1.islower())# True
# str1 = 'abCD'
# print(str1.islower())# False
# str1 = 'abc123'
# print(str1.islower())# True
# str1 = 'abc123#'
# print(str1.islower())# True

'''
列表
列表是一个容器,可以装任何类型的数据,列表是一个有序序列==>可以使用索引与切片
列表用list表示
定义一个列表list1=[],列表函数list()
'''
# 1.定义列表的第一种方法
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# print(list1)      # ['dcs', 'xian05', 24, ['xiao', 'wang']]
# print(type(list1))# <class 'list'>

# 2.使用列表函数list()转换
# str1 = 'abcd'
# list1 = list(str1)   # list()函数将str1字符串转换为列表
# print(list1)# ['a', 'b', 'c', 'd']
# str2 = str(list1)      # str()将列表转换为字符串
# print(str2)            # 结果为字符串 '['a', 'b', 'c', 'd']'
# print(''.join(list1))# abcd

# 列表中常用的函数与方法
# 列表使用索引赋值
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# print(list1)   # dcs
# list1 = 'abc'# 把索引位置0的值'dcs'改为'abc'
# print(list1)      # ['abc', 'xian05', 24, ['xiao', 'wang']]

# 切片赋值
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# list1 = 'abc'
# print(list1)# ['a', 'b', 'c', 24, ['xiao', 'wang']]

# 1.append()函数,列表尾插,可以添加任何数据类型
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# list1.append('abc')       # 添加字符串
# print(list1)            # ['dcs', 'xian05', 24, ['xiao', 'wang'], 'abc']
# list1.append(123)         # 添加int类型数据
# print(list1)            # ['dcs', 'xian05', 24, ['xiao', 'wang'], 'abc', 123]
# list1.append(['12321'])   # 添加一个列表
# print(list1)            # ['dcs', 'xian05', 24, ['xiao', 'wang'], 'abc', 123, ['12321']]

# 2.inster()函数,根据索引位置去添加元素到列表中
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# list1.insert(1, 'qaz')      # ['dcs', 'qaz', 'xian05', 24, ['xiao', 'wang']]
# list1.insert(1, 123)      # ['dcs', 123, 'xian05', 24, ['xiao', 'wang']]
# list1.insert(1, ['12321'])# ['dcs', ['12321'], 'xian05', 24, ['xiao', 'wang']]
# print(list1)

# 3.extend()函数,连接两个列表,传入的至是一个可迭代的对象
# list1 = ['xian05']
# list2 = ['dcs']
# list1.extend(list2)# 把list2与list1相连,最终list1存在
# print(list1)         # ['xian05', 'dcs']
# list1 = ['xian05']
# str1 = 'dcs'
# list1.extend(str1)   # 把str1与list1相连
# print(list1)         # ['xian05', 'd', 'c', 's']
# list1 = ['xian05']
# int1 = 10100
# list1.extend(int1)   # 把int1与list1相连
# print(list1)         # TypeError: 'int' object is not iterable

# 4.index()函数,查看列表元素索引值(也可在字符串中使用)
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# print(list1.index('xian05'))   # 1
# str1 = 'abcdef'
# print(str1.index('b'))         # 1

# 5.remove()函数,移除列表中元素(根据列表元素值进行删除)
# list1 = ['dcs', 'dcs', 'xian05', 24, ['xiao', 'wang']]
# list1.remove('dcs')# 相同元素只删除第一个
# print(list1)         # ['dcs', 'xian05', 24, ['xiao', 'wang']]

# 6.关键字del删除(根据列表索引进行删除)
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# del list1    # 删除索引为0的元素
# print(list1)    # ['xian05', 24, ['xiao', 'wang']]
# list1 = ['dcs', 'xian05', 24, ['xiao', 'wang']]
# del list1# 删除索引0到2不取2,
# print(list1)    # ]

# 7.sort() 列表排序(默认升序)
# 只有当列表中的元素全部为str或者全部为int的时候才能对它进行排序
# 根据ascii编码排序的原则,数字@-9>A-Z>a-z
# list1 = ['dcs', 'xian05', '24', 'xiao', 'wang']
# list1.sort()
# print(list1)# ['24', 'dcs', 'wang', 'xian05', 'xiao']
# list2 =
# list2.sort()
# print(list2)#
# list2.sort(reverse=True)# reverse=True降序,reverse=False升序
# print(list2)#
# 8.sorted() 列表排序(默认升序),对列表参数进行排序并生成排序后新的列表
# list1 = ['dcs', 'xian05', '24', 'xiao', 'wang']
# list2 = sorted(list1)
# print(list2)# ['24', 'dcs', 'wang', 'xian05', 'xiao']
# list3 = sorted(list1,reverse=True)
# print(list3)# ['xiao', 'xian05', 'wang', 'dcs', '24']
# --------------------------------------------------------------
# 你知道Python中的排序吗?用哪些方法可以进行排序? sort()和sorted()的区别
# 相同点: 2个函数都是默认升序排序
# 不同点: 1.sort()是一个方法, sorted()是一个函数,
#      2.sort()排序是针对原来的列表进行排序,不会生成新的列表, sorted()把原来的列表进行排序并且生成一个新的排序
# --------------------------------------------------------------

# 9.reverse() 反转列表
# list1 = ['dcs', 'xian05', '24', 'xiao', 'wang']
# list1.reverse()
# print(list1)      # ['wang', 'xiao', '24', 'xian05', 'dcs']
# # 用切片反转函数
# list1 = ['dcs', 'xian05', '24', 'xiao', 'wang']
# print(list1[::-1])# ['dcs', 'xian05', '24', 'xiao', 'wang']

页: [1]
查看完整版本: PythonDay02