概要 :
基本语法
输出格式、 变量 、注释
数据类型
Numbers (数字)、String (字符串)、List (列表)、Tuple(元组)、Cictionary(字典) 及各个数据类型的常用方法和内置函数 、多维数组等
数据操作
切片操作 、回文算法
基本语法 -
输出格式 :
Python的输出语法和Swift的输出一样
1 # 输出
2 print("Hello Python")
注释 :
Python中单行注释采用 # 开头。
python中多行注释使用三个单引号 ''' 或三个双引号 """
变量 :
Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
Python允许你同时为多个变量赋值, 也可以为多个对象指定多个变量。例如:
1 a = b = c = 1 2 3 # 多变量赋值 4 a, b, c = 1, 2, "jun"
标准数据类型
有五个标准的数据类型:
Numbers (数字)
String (字符串)
List (列表)
Tuple(元组)
Cictionary(字典)
Number(数字)
Number是不可被改变的数据类型, 当你指定一个值时,Number对象就会被创建
Python支持四种不同的数值类型:
int (有符号整型)
long (长整型[也可以代表八进制和十六进制])
float (浮点型)
complex (复数)
复数: 和数学中的复数含义一样, 复数由实数部分和虚数部分构成,可以用a+bj, 或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
字符串
- 字符串或串(String)是由数字、字母、下划线组成的一串字符
- Swift中的字符串一样, 每一个字符都有一个与之对应的索引
- Python的字串列表有2种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
- 获取某一部分字符串的格式: [头下标:尾下标]
1 字符串的常用方法
2 s='aNc'
3 q='1+2+3\n1+2+3+4'
4 a='mysql is is db'
5 s.find('z')) # 找不存在的元素,find会返回-1
6 s.index('z') # 找不存在的元素,index报错
7 s.count('z') # 计数
8 a.rfind('db'))#返回最右边字符的下标
9 s.upper() # #变成大写
10 s.lower() #变成小写
11 s.swapcase())#大小写反转
12 s.capitalize() #首字母大写
13 s.split(',') # 以,位分隔符,返回list
14 q.splitlines()#按照换行符分割
15 s.strip('abc') #去除“abc”
16 s.lstrip() ##默认去掉左边的空格和换行
17 s.rstrip() ##默认去掉右边的空格和换行
18 s.replace('old','new') # 替换
19 s.endswith('xxx.mp3') #判断时候xxx.mp3结尾
20 s.startswith('186') #判断时候186开头
21 s1=','.join(list) #1、把list变成了字符串 2、把list里面每一个元素用逗号连接起来 username,user2,user3
22 print('+'.join(['hehe', 'haha', 'ee'])) # 拼接字符串 hehe+haha+ee
23 s.isdigits() ##判断是否为正整数
24 s.isalpha() #是否是英文字母
25 s.isalnum() #是否包含数字和字母
26 s.zfill(5) # 位数不足5位时,自动补零
27 s.isidentifier())#是否是一个合法的变量名
28 s.istitle())#是不是一个标题,判断首字母是否大写
29 s.isidentifier())#是否是一个合法的变量名
30 a.rfind('is')#返回最右边字符的下标
1 # 字符串
2 str = 'Hello Python'
3
4 # 1. 输出完整字符串
5 print("完整字符串--" + str)
6 # 结果输出:
7
8 # 2. 输出第一个字符
9 print("第一个字符--" + str[0])
10
11 # 3. 输出第三到七个字符
12 print("第3-7个字符--" + str[2:6])
13
14 # 4. 输出低2个字符开始的所有字符
15 print("第2个开始的所有字符--" + str[1:])
16
17 # 5. 拼接字符串
18 # 像上面一样, 字符串用 `+`拼接
19 print("拼接--" + str)
20
21 # 6. 输出3次
22 # `*` 表示重复操作, 需要重复操作几次, 后面跟上次数即可
23 print(str * 3)
24
25 # 7. 输出最后一个字符
26 print("最后一个字符--" + str[-1])
27
28 # 8. 输出倒数第二个字符
29 print("倒数第二个字符--" + str[-2])
# 输出 结果
1 2 完整字符串--Hello Python 3 第一个字符--H 4 第3-7个字符--llo 5 第2个开始的所有字符--ello Python 6 拼接--Hello Python 7 Hello PythonHello PythonHello Python 8 最后一个字符--n 9 倒数第二个字符--o 10
一些方法:
1 password='jpg 12345456789 .jpg ABCDE' 2 print(password) # 输出结果 :jpg 12345456789 .jpg ABCDE new_password = password.strip() # 默认去掉字符串两边的空格
new_password = password.strip('\n') # 默认去掉字符串两边换行符
3 new_password = password.strip('.jpg') # 默认去掉字符串两边的指定去掉字符串 4 print(password.lstrip()) # 左边的 5 print(password.rstrip()) # 右边的 6 print('password',password) 7 print('newpassword',new_password) 8 print(password.upper()) # 转成大写的 9 print(password.lower()) # 转成小写的 10 print(password.capitalize()) # 吧首字母改成大写的 11 print(password.count('jpg')) # 计算指定字符的在字符串中的次数 12 print(password.replace('爱玲','上山打老虎')) # 替换字符串
1 filename = 'a.mp4'
2 age=18
3 print(filename.endswith('.mp3')) # 判断是否以xx结尾 # 输出 : False
4 print(filename.startswith('18')) # 判断是否以开头 # 输出 :True
5 print('{name},{age}'.format(name='hhh',age=age)) # 字符串格式化 # 输出 : hhh,18
1 names = '小军 海龙 杨帆 爱玲'
2 print(names.replace(' ','')) # 把name中的空格替换掉
3 print(names.split(' ')) # 以 空格 作为分割符 进行分割,分割后的每个元素组成一个list
4 # 1、是把字符串变成list
5 # 2、以某个字符串分割,分割之后的是list里面的每一个元素
List(列表)
List(列表) 是Python中使用最频繁的数据类型, 和C语言中的数组一样, 语法操作和上述字符串类似- 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
- 列表用
[ ]标识。是python最通用的复合数据类型
列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表 (下标=索引=角标)
- 从左到右索引默认0开始的
- 从右到左索引默认-1开始
- 下标可以为空表示取到头或尾。
- 加号(+)是列表连接运算符,星号(*)是重复操作
1 # List 列表 2 list1 = [12, 34, 3.14, 5.3, 'titan'] 3 list2 = [10, 'jun'] 4 5 # 1.完整列表 6 print(list1) 7 8 # 2.列表第一个元素 9 print(list1[0]) 10 11 # 3.获取第2-3个元素 12 print(list1[1:2]) 13 14 # 4.获取第三个到最后的所有元素 15 print(list1[2:]) 16 17 # 5.获取最后一个元素 18 print(list1[-1]) 19 20 # 6.获取倒数第二个元素 21 print(list1[-2]) 22 23 # 7.获取最后三个元素 24 print(list1[-3:-1]) 25 26 # 8.合并列表 27 print(list1 + list2) 28 29 # 9.重复操作两次 30 print(list2 * 2)
1、增加列表元素:A、list.append()B、list.insert()
1 # 增加列表元素
2 stu_name = ['哈华','呢呢','心',1,1.5]
3 print(stu_name)
4 stu_name.append('小月') # 在list的末尾添加一个元素
5 stu_name.insert(0,'小军') # 指定位置添加元素
6 stu_name.insert(0,'小军') # 指定位置再添加元素
7 print('修改之后的',stu_name)
输出结果 :
1 ['哈华', '呢呢', '心', 1, 1.5] 2 修改之后的 ['小军', '小军', '哈华', '呢呢', '心', 1, 1.5, '小月']
2、修改列表元素
1 # 修改列表元素
2 stu_name = ['哈华','呢呢','心',1,1.5,'强']
3 stu_name[5]='花花'
4 print('修改之后的',stu_name)
5
6 # 输出结果 :
7
8 修改之后的 ['哈华', '呢呢', '心', 1, 1.5, '花花']
3、删除列表元素 :A、list.pop()
#没有下标,删除最后一个元素
若删除指定下标的元素,删除不存在的元素会报错
B、del list[1] :
# 下标、索引、如果是正数就从左边开始算起,如果是负数,则从后面开始数起,倒序
C、list.remove('') #删除指定的元素,如果有一样的元素,只会删除第一个
# 删
stu_name = ['哈华','呢呢','心',1,1.5,'强']
stu_name.pop() # 删除最后一个元素
stu_name.pop(4) # 删除指定下标的元素
print("删除后:",stu_name)
# 输出结果 :
删除后: ['哈华', '呢呢', '心', 1]
1 # 删
2 stu_name = ['哈华','呢呢','心',1,1.5,'强' ,'小军']
3
4 # stu_name.pop() # 删除最后一个元素
5 # stu_name.pop(4) # 删除指定下标的元素
6 # print("删除后:",stu_name)
7 stu_name.append('小军') # 先增加一个小军
8 print(stu_name)
9 stu_name.remove('小军') # 删除指定的元素,如果有一样的元素,只会删除第一个
10 stu_name.pop(1) # 删除指定下标的元素,删除不存在的元素会报错
11 print(stu_name)
12 del stu_name[-1] # 下标、索引、如果是正数就从左边开始算起,如果是负数,则从后面开始数起,倒序
13 print(stu_name)
14
15
16 #输出结果 :
17 ['哈华', '呢呢', '心', 1, 1.5, '强', '小军', '小军']
18 ['哈华', '心', 1, 1.5, '强', '小军']
19 ['哈华', '心', 1, 1.5, '强']
4、查询列表元素:
1 # 查
2 my_list = ['小黑','小白',1,1,2,1.5]
3 print(my_list[-1])
4 print(my_list[0])
5 print(my_list.count(5)) # 查询某个元素在list里面出现的次数
6 print('index方法:',my_list.index(1)) # 查找元素的下标,元素不存在的话,会报错
7 print('reverse:',my_list.reverse()) # reverse是反转list
8 print(my_list)
9 # my_list.clear()#清空整个list
10 # print(my_list)
11
12 nums =[9.23,9,3,6,1,0]
13 nums.sort() # 排序,升序
14 nums.sort(reverse=True) # 排序,如果指定了reverse=True,那么就是降序
15 # nums.extend(my_list)#把一个list里面的元素加入进去
16 print(nums)
17 new_list = nums + my_list + stu_name
18 # extend是把列表本身变化了,而直接
19 # 两个列表相加的话,列表本身没有变化,只是相加的结果存在一个新的列表里面
20 print(new_list)
21 print(new_list * 3) # 复制几个
列表函数和方法 :
1 函数表达式 输出结果 描述
2 len(list1) 3 列表元素个数
3 max([1, 2, 's']) s 返回列表元素的最大值
4 min([1, 2, 's']) 1 返回列表元素的最小值
5 list(('q', 1) ['q', 1] 将元组转换为列表
6 list1.append(2) [1, 2, 3, 2] 在列表末尾添加新的对象
7 list1.count(2) 2 统计某个元素在列表中出现的次数
8 list1.index(3) 2 从列表中找出某个值第一个匹配项的索引位置
9 list1.insert(1, 'jun') [1, 'jun', 2, 3, 2] 将对象插入列表的指定位置
10 list1.remove(3) [1, 'jun', 2, 2] 移除列表中某个值的第一个匹配项
11 list1.reverse() [2, 2, 'jun', 1] 对列表的元素进行反向排列
12 list1.sort() [2, 2, 'jun', 1] 对原列表进行排序, 如果指定参数,则使用比较函数指定的比较函数
extend()方法
用于在列表末尾一次性追加另一个序列(元组和列表)中的多个值(用新列表扩展原来的列表)
1 list3 = [12, 'as', 45] 2 list4 = (23, 'ed') 3 list3.extend(list4) 4 print(list3) 5 6 //输出: 7 [12, 'as', 45, 23, 'ed']
len( ) : 取长度
1 passwords=['123456','123123','7891234','password'] 2 print(len(passwords)) # 取长度,也就是list里面元素的个数 3 4 # 输出结果 5 4
多维数组 :
1 nums1 = [1,2,3] # 一维数组 2 nums2 = [1,2,3,[4,56]] # 二维数组 3 print(nums2[-1][-1]) 4 5 # 多维数组 6 7 nums = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] # 三维数组 8 nums3 = [1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] # 四维数组 9 print(nums[4][5][1]) 10 11 # 输出结果 12 56 13 二
循环List :
1 # 循环这个list
2 # 原始方式
3 passwords=['123456','123123','7891234','password']
4
5 count = 0 # 最原始list取值方式,是通过每次计算下标来获取元素的
6 while count<len(passwords):
7 s = passwords[count]
8 print('每次循环的时候',s)
9 count+=1
10
11 # 输出结果 :
12 每次循环的时候 123456
13 每次循环的时候 123123
14 每次循环的时候 7891234
15 每次循环的时候 password
16
17
18
19 # 简单方式 用for循环
20 passwords=['123456','123123','7891234','password']
21 index = 0
22 for p in passwords: # for循环直接循环一个list,那么循环的时候就是每次取它的值
23 passwords[index] = 'abc_'+p
24 index+=1
25 print(passwords)
26
27
28 #输出结果:
29 ['abc_123456', 'abc_123123', 'abc_7891234', 'abc_password']
元组
- 元组是另一个数据类型(
Python中的元组和Swift中的元组类似) - 元组用”()”标识。内部元素用逗号隔开
- 元素不能二次赋值,相当于只读列表
- 元组也是一个不可变列表,元组不能修改
1 # 元组 2 tuple1 = (12, 34, 3.14, 5.3, 'titan') 3 tuple2 = (10, 'jun') 4 5 # 1.完整元组 6 print(tuple1) 7 8 # 2.元组一个元素 9 print(tuple1[0]) 10 11 # 3.获取第2-3个元素 12 print(tuple1[2:3]) 13 14 # 4.获取第三个到最后的所有元素 15 print(tuple1[2:]) 16 17 # 5.获取最后一个元素 18 print(tuple1[-1]) 19 20 # 6.获取倒数第二个元素 21 print(tuple1[-2]) 22 23 # 7.获取最后三个元素 24 print(tuple1[-3:-1]) 25 26 # 8.合并元组 27 print(tuple1 + tuple2) 28 29 # 9.重复操作两次 30 print(tuple2 * 2) 31
元组运算符
1 # 计算元素个数
2 print(len((1, 2, 3)))
3 # 合并元组
4 tuple1 = (1, 2) + (4, 5)
5 print(tuple1)
6 # 重复
7 tuple2 = ('jun',) * 3
8 print(tuple2)
9 # 检测是否包含某元素
10 if (2 in tuple1):
11 print('2在该元组内')
12 else:
13 print('不在元组内')
14 # 遍历元组
15 for x in tuple1:
16 print(x)
17
18 //输出:
19 3
20 (1, 2, 4, 5)
21 ('jun', 'jun', 'jun')
22 2在该元组内
23 1
24 2
25 4
26 5
元组内置函数
1 tuple1 = (1, 2, 4, 5)
2 # 元组中元素最大值
3 print(max(tuple1))
4 # 元组中元素最小值
5 print(min(tuple1))
6 # 列表转换为元组
7 print(tuple(['a', 'd', 'f']))
8
9 //输出:
10 5
11 1
12 ('a', 'd', 'f')
13
14 # 元组 只有一个字符串元素的时候,一定要加 引号。
15 tuple1.count(‘a’)# 统计某个元素在元组中出现的次数
16 tuple1.index('a') #从元组中找出某个值第一个匹配项的索引位置
字典
- 字典(
dictionary)是除列表以外python之中最灵活的内置数据结构类型。 - 列表是有序的对象集合,字典是无序的对象集合。
- 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过索引存取。
- 字典用”{ }”标识。字典由索引(key)和它对应的值value组成
- 这里的字典的key值, 不仅仅可以用字符串, 还可以用
Number类型
K - V 形式,可循环优点:好取值,速度快
1 hailong = {
2 'name':'hailong',
3 'sex':'男',
4 'shengao':'185',
5 'age':18,
6 'email':'acb@qq.com',
7 'addr':'火星',
8 'id':2
9 }
10
11 # for i in hailong:
12 # print(i)
13 # if i =='name':
14 # print(hailong[i])
15 # 无序输出
16 sex
17 age
18 shengao
19 name
20 hailong
21 id
22 email
23 addr
24
25
26 for k,v in hailong.items(): # 字典转换成一个list
27 print(k,v)
28
29 # 无序输出
32 email acb@qq.com
33 id 2
34 name hailong
35 sex 男
36 shengao 185
37 addr 火星
38 age 18
1 # 字典
2 dict1 = {'name': 'jun', 'age': 18, 'score': 90.98}
3 dict2 = {'name': 'titan'}
4
5 # 完整字典
6 print(dict2)
7
8 # 1.修改或添加字典元素
9 dict2['name'] = 'brother'
10 dict2['age'] = 20
11 dict2[3] = '完美'
12 dict2[0.9] = 0.9
13 print(dict2)
14
15 # 2.根据键值获取value
16 print(dict1['score']) #当查询的键不存在的时候,会报错
print(dict1(get('score'))) #用get方法去查询字典,好处就是当查询的键不存在的时候,不会报错
17
18 # 3.获取所有的键值
19 print(dict1.keys())
20
21 # 4.获取所有的value值
22 print(dict1.values())
23
24 # 5.删除字典元素
25 del dict1['name']
26 print(dict1)
27
28 # 6.清空字典所有条目
29 dict1.clear()
30 print(dict1)
31
32 # 7.删除字典/元素
1 #delete
2 dict1.pop('age') # 删除指定key的值
3 print('删除age',dict1)4 dict1.popitem() #随机删除5 print(dict1)6
7 del dict1['age'] #del 删除8 print(dict1)
33 dict3 = {2: 3}
34 del dict3
35 # 当该数组呗删除之后, 在调用会报错
36 # print(dict3)#合并字典 :字典合并,字典是没有顺序的,增加字段后位置也是随机放的d1 = {'a': 'A','b':'B'}d2 = {'c':'C'}d1.update(d2)print(d1)print(d2)# 输出{'a': 'A', 'c': 'C', 'b': 'B'}
{'c': 'C'}
# 字典多层嵌套取值 1 all_stus = {
2 'xiaojun':
3 {
4 'sex': '男',
5 'shengao': '185',
6 'age': 18,
7 'email': 'acb@qq.com',
8 'addr': '火星',
9 'id': 1,
10 'cars':['牧马人','911','野马','劳斯莱斯']
11
12 },
13 'hailong':{
14 'sex': '男',
15 'shengao': '185',
16 'age': 18,
17 'email': 'acb@qq.com',
18 'addr': '火星',
19 'id': 2
20 },
21 'yangfan':{
22 'sex': '男',
23 'shengao': '185',
24 'age': 18,
25 'email': 'acb@qq.com',
26 'addr': '火星',
27 'id': 3,
28 'bags':{
29 'qianbao':['lv','ysl'],
30 'beibao':['coach','abc']
31 }
32 }
33 }
34 all_stus['xiaojun']['cars'].append('五菱宏光') # 添加一个
35 print(all_stus['小军']) #输出
1 {'addr': '火星', 'shengao': '185', 'sex': '男', 'age': 18, 'id': 1, 'cars': ['牧马人', '911', '野马', '劳斯莱斯', '五菱宏光'], 'email': 'acb@qq.com'}
36 print(len(all_stus['xiaojun']['cars']))# 输出 5 37 all_stus['yangfan']['sex'] = '女' 38 print(all_stus['yangfan']) # 输出
1 {'sex': '女', 'email': 'acb@qq.com', 'shengao': '185', 'id': 3, 'addr': '火星', 'bags': {'qianbao': ['lv', 'ysl'], 'beibao': ['coach', 'abc']}, 'age': 18}
39 all_stus['yangfan']['bags']['qianbao'].remove('lv') # 移除lv
print(all_stus['yangfan'])
#输出
1 {'sex': '男', 'email': 'acb@qq.com', 'addr': '火星', 'bags': {'beibao': ['coach', 'abc'], 'qianbao': ['ysl']}, 'age': 18, 'id': 3, 'shengao': '185'}
内置函数
1 dic1 = {'name': 'titan', 'age':20}
2 # 计算字典元素个数,即键的总数
3 print(len(dic1))
4 # 字典(Dictionary) str() 函数将值转化为适于人阅读的形式,以可打印的字符串表示
5 print(str(dic1))
6 # 返回输入的变量类型,如果变量是字典就返回字典类型
7 print(type(dic1))
8
9 //输出:
10 2
11 {'name': 'titan', 'age': 20}
12 <class 'dict'>
内置方法
copy()、fromkeys()方法、get() 和 setdefault()方法、update()方法、pop() 和 popitem() 方法、其他方法
copy()方法
copy()函数返回一个字典的浅复制- 直接赋值和
copy的区别 -
1 dict1 = {'user':'runoob','num':[1,2,3]} 2 3 dict2 = dict1 # 浅拷贝: 引用对象 4 dict3 = dict1.copy() # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 5 6 # 修改 data 数据 7 dict1['user']='root' 8 dict1['num'].remove(1) 9 10 # 输出 11 print(dict1) 12 print(dict2) 13 print(dict3) 14 15 16 # 输出结果 17 {'num': [2, 3], 'user': 'root'} 18 {'num': [2, 3], 'user': 'root'} 19 {'num': [2, 3], 'user': 'runoob'} 20 21 实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的, dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改fromkeys()方法
fromkeys()函数用于创建一个新字典,- 参数一: 以序列
seq中元素做字典的键 - 参数二:
value为字典所有键对应的初始值(可选参数) -
1 dict.fromkeys(seq[, value]) 2 3 # 使用 4 dic2 = dict.fromkeys(['name', 'titan']) 5 print(dic2) 6 dic3 = dict.fromkeys(['name', 'titan'], 20) 7 print(dic3) 8 9 # 输出: 10 {'name': None, 'titan': None} 11 {'name': 20, 'titan': 20}get() 和 setdefault()方法
get()函数返回指定键的值,如果值不在字典中返回默认值setdefault()和get()方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值(同事也会把键值对添加到字典中)- 参数一: 字典中要查找的键。
- 参数二: 如果指定键的值不存在时,返回该默认值值(可选参数) ,即找不到键的值也不会报错
1 dict.get(key, default=None) 2 3 # 使用 4 dic5 = {'name': 'titan', 'age':20} 5 print(dic5.get('name')) 6 print(dic5.get('Sex', 'man')) 7 print(dic5.setdefault('name')) 8 print(dic5.setdefault('Sex', 'man')) 9 print(dic5) print(dics2.setdefault('name','Tan')) #如果这个key已经存在,那么就不修改它的值了 10 11 # 输出结果: 12 titan 13 man 14 titan 15 man 16 {'name': 'titan', 'age': 20, 'Sex': 'man'}其他方法
1 dic2 = {'name': 'titan', 'age':20} 2 # 判断键是否存在于字典中, 在True, 不在False 3 print(dic2.__contains__('name')) 4 5 # 以列表返回可遍历的(键, 值) 6 print(dic2.items()) 7 8 # 删除字典内所有元素 9 dic2.clear() 10 print(dic2) 11 12 13 # 输出结果: 14 True 15 dict_items([('name', 'titan'), ('age', 20)]) 16 {}
切片:就是list取值的一种方式
1 # 切片 : 就是list取值的一种方式 2 3 l = ['a','b','c','d','e','j','k','l','m','n','o'] 4 # 0 1 2 3 4 5 6 7 8 9 10 5 print(l[2:8]) # 顾头不顾尾 6 print(l[:5]) # 如果最前面没写的话,代表从0开始取的 7 print(l[4:]) # 如果冒号后面的没写的话,代表去到最后 8 print(l[:]) # 如果冒号后面的没写的话,代表去到最后 9 print(l[::3]) # 步长,也就是代表隔几个取一次, 10 nums = list(range(1,11))
# 1 2 3 4 5 6 7 8 9 10
11 print(nums[1::2]) # 取偶数, 12 print(nums[::2]) # 取奇数 13 14 print(nums) 15 print(nums[::-1]) # 取奇数 16 # 如果最后面的步长是正数的话, 那就从左到右开始取值 17 # 如果后面的步长是负数的话,那么就从右往左开始取值 18 19 #输出结果 : 20 ['c', 'd', 'e', 'j', 'k', 'l'] 21 ['a', 'b', 'c', 'd', 'e'] 22 ['e', 'j', 'k', 'l', 'm', 'n', 'o'] 23 ['a', 'b', 'c', 'd', 'e', 'j', 'k', 'l', 'm', 'n', 'o'] 24 ['a', 'd', 'k', 'n'] 25 [2, 4, 6, 8, 10] 26 [1, 3, 5, 7, 9] 27 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 28 [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
切片 ,同样也使用于字符串
1 # 切片 同样适用于字符串。
2 words='中秋节要放假'
3 print(words[::-1])
4 for index,w in enumerate(words):
5 print('每次打印的',index,w)
6
7
8 # 输出结果 :
9 假放要节秋中
10 每次打印的 0 中
11 每次打印的 1 秋
12 每次打印的 2 节
13 每次打印的 3 要
14 每次打印的 4 放
15 每次打印的 5 假
回文算法 : 反过来 倒过去都一样
1 # 回文算法,反过来倒去过都一样
2 # 如:
3 #s ='上海自来水来自海上'
4 # 1232321
5 # 1111
6 # 5678 8765
7 #
8 for i in range(10):
9 s = input('请输入一个字符串:')
10 if len(s)<2:
11 print('字符串长度必须大于1')
12 elif s==s[::-1]:
13 print('是回文')
14 else:
15 print('不是回文')
16
17
18 # 输出结果 :
19 请输入一个字符串:1232321
20 是回文
21 请输入一个字符串:56788765
22 是回文
23 请输入一个字符串:56788765
24 是回文
25 请输入一个字符串:1
26 字符串长度必须大于1
27 请输入一个字符串:11
28 是回文
29 请输入一个字符串:
字符串的常用方法 s='anc' s.upper() s.lower() s.capitalize() s.split(',') s.strip('abc') s.lstrip() s.rstrip() s.replace('old','new') s.endswith('xxx.mp3') s.startswith('186') ','.join('sdfsdfds') s.isdigits() s.isalnum() s.zfill(5)
来源:https://www.cnblogs.com/tanzitanzi/p/9553731.html