喜欢Python的小伙伴,希望本篇文章可以给你带来帮助!^.^

看到最后,给自己一个学习的基地!不管你是大佬还是小白,一起学习共同进步!感谢大家一直来的支持!

我们继续上一篇文章:第一篇

7、列举 Python2和Python3的区别

  • print
  • input
1 问题:如何获取编码方式的信息? 2 获取目标bytes的编码方式 3 这一情况可以通过chardet模块的detect()函数来获取信息,chardet是第三方库,可以通过pip来安装 4  5 b是待检测的bytes变量 6  7 import chardet 8 print(chardet.detect(b)) 9 ######output####10 {'confidence': 1.0, 'encoding': 'ascii'}11 112 213 314 415 516 confidence是指匹配程度,encoding是指可能的编码方式17 18 获取当前环境的编码方式 19 这一情况可以使用sys模块下的getdefaultencoding()函数来获取信息20 21 import sys22 print(sys.getdefaultencoding())23 24 ######## output#####25 utf-8




python从右往左查找字符串位置 python 从后往前查找字符串_c截取字符串中的一部分


  • 问题在控制台上看到的到底是什么
1 写上面的东西的时候产生了一个疑问,现在已经知道Python内部存储str的方式是使用unicode字符集,但是我们在屏幕上看到的并不是unicode字符集 3 s = "你好" 4 print(s) 6 #########output############# 7 你好13 s的 unicode 是 你好14 115 那么,这中间应该是进行了某种转换 16 实际上,在执行print(str)的时候,python内部执行了encoding操作,控制台拿到的其实是一个bytes变量 17 之后,控制台又根据环境内部的编码方式,将所得到的bytes内容进行decoding的操作,就显示了原先str的内容
  • 打开文件不再支持 file 方法,只能用 open
  • range不再返回列表,而是一个可迭代的range对象
  • 除法 / 不再是整除,而是得到浮点数,整除需要用双斜杠 //
  • urllib和urllib2合并成了urllib,常用的urllib2.urlopen()变成了urllib.request.urlopen()
  • 字符串及编码相关有大变动,简单来说就是原来的str变成了新的bytes,原来的unicode变成了新的str。


python从右往左查找字符串位置 python 从后往前查找字符串_python sorted下标_02


8、xrange和range的区别

python2中 xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。

9、python的read() 、readline()、readlines()、xreadlines()

  • read()会读取整个文件,将读取到底的文件内容放到一个字符串变量,返回str类型。
  • readline()读取一行内容,放到一个字符串变量,返回str类型。
  • readlines() 读取文件所有内容,按行为单位放到一个列表中,返回list类型。
  • xreadlines()返回一个生成器,来循环操作文件的每一行。。

10、列举布尔值为False的常见值

None、""、0、[]、()、{}


python从右往左查找字符串位置 python 从后往前查找字符串_字符串_03


11、字符串、列表、元组、字典每个常用的5个方法(整型,浮点,字符串,布尔型,列表、元组、字典、集合、日期)

字符串:

# encoding:utf-8__author__ = 'Fioman'__date__ = '2018/11/19 15:10'# 1. 去掉空格和特殊符号name = " abcdefgeyameng "name1 = name.strip() # 并不会在原来的字符串上操作,返回一个去除了两边空白的字符串print(name1, len(name1), name, len(name))# abcdefgeyameng 14 abcdefgeyameng 17# 去掉左边的空格和换行符name2 = name.lstrip()print(name2, len(name2))# print(name2, len(name2))## 去掉右边的空格和换行符name3 = name.rstrip()print(name3, len(name3)) # abcdefgeyameng 15# 2.字符串的搜索和替换name.count('e') # 查找某个字符在字符串中出现的次数name.capitalize() # 首字母大写name.center(100,'-') # 把字符串方中间,两边用-补齐,100表示占位多少name.find('a') # 找到这个字符返回下标,多个时返回第一个,不存在时返回-1name.index('a') # 找到这个字符返回下标,多个时返回第一个,不存在时报错print(name.replace(name,'123')) # 字符串的替换name.replace('abc','123') # 注意字符串的替换的话,不是在原来的字符串上进行替换.而是返回一个替换后的字符串.# 3.字符串的测试和替换函数name.startswith("abc") # 是否以abc开头name.endswith("def") # 是否以def结尾name.isalnum() # 是否全是字母和数字,并且至少包含一个字符name.isalpha() # 是否全是字母,并至少包含一个字符name.isdigit() # 是否全是数字,并且至少包含一个字符name.isspace() # 是否全是空白字符,并且至少包含一个字符name.islower() # 是否全是小写name.isupper() # 是否全是大写name.istitle() # 是否是首字母大写# 4.字符串的分割name.split('') # 默认按照空格进行分隔,从前往后分隔name.rsplit() # 从后往前进行分隔# 5.连接字符串'.'.join(name) # 用.号将一个可迭代的序列拼接起来name = 'geyameng'# 6.截取字符串(切片)name1 = name[0:3] # 第一位到第三位的字符,和range一样不包含结尾索引name2 = name[:] # 截取全部的字符name3 = name[6:] # 截取第6个字符到结尾name4 = name[:-3] # 截取从开头到最后一个字符之前name5 = name[-1] # 截取最后一个字符name6 = name[::-1] # 创造一个与原字符串顺序相反的字符串name7 = name[:-5:-1] # 逆序截取


python从右往左查找字符串位置 python 从后往前查找字符串_python从右往左查找字符串位置_04


列表:

# encoding:utf-8__author__ = 'Fioman'__date__ = '2018/11/19 16:26'# 1.创建一个列表list1 = ['1', '2', '3', '4']list2 = list("1234")print(list1, list2)print(list1 == list2)# 以上创建的两个列表是等价的,都是['1', '2', '3', '4']# 2.添加新元素# 末尾追加a = [1, 2, 3, 4, 5]a.append(6)print(a)# 指定位置的前面插入一个元素a.insert(2, 100) # 在下标为2的前面插入一个元素100print(a)# 扩展列表list.extend(iterable),在一个列表上追加一个列表a.extend([10, 11, 12])print(a)# 3.遍历列表# 直接遍历for i in a: print(i)# 带索引的遍历列表for index, i in enumerate(a): print(i, index)# 4.访问列表中的值,直接通过下标取值.list[index]print(a[2])# 从list删除元素# List.remove() 删除方式1:参数object 如果重复元素,只会删除最靠前的.a = [1,2,3]a.remove(2) # 返回值是None# List.pop() 删除方式2:pop 可选参数index,删除指定位置的元素 默认为最后一个元素a = [1,2,3,4,5]a.pop()print(a)a.pop(2)print(a)# 终极删除,可以删除列表或指定元素或者列表切片,list删除后无法访问a = [1,2,3,4,5,6]del a[1]print(a) # 1, 3, 4, 5, 6]del a[1:]print(a) # 1del a# print(a) # 出错,name a is not defined# 排序和反转代码# reverse 反转列表a = [1,2,3,4,5]a.reverse()print(a)# sort 对列表进行排序,默认升序排列.有三个默认参数cmp = None,key = None,reverse = False# 7.Python的列表的截取与字符串操作类型相同,如下所示L = ['spam','Spam','SPAM!']print(L[-1]) # ['SPAM']# 8.Python列表操作的函数和方法len(a) # 列表元素的个数max(a) # 返回列表元素最大值min(a) # 返回列表元素最小值list(tuple) #将一个可迭代对象转换为列表# 列表常用方法总结a.append(4)a.count(1)a.extend([4,5,6])a.index(3)a.insert(0,2)a.remove()a.pop()a.reverse()a.sort()


python从右往左查找字符串位置 python 从后往前查找字符串_python sorted下标_05


元组:

1.用一个可迭代对象生成元组 T = tuple('abc')对元组进行排序注意当对元组进行排序的时候,通常先得将它转换为列表并使得它成为一个可变对象.或者使用sorted方法,它接收任何序列对象.T = ('c','a','d','b')tmp = list(T)tmp.sort() ==> ['a','b','c','d']T = tunple(tmp)sorted(T)

字典:

以下实例展示了 fromkeys()函数的使用方法:实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-8 -*-seq = ('Google', 'Runoob', 'Taobao')dict = dict.fromkeys(seq)print "新字典为 : %s" % str(dict)dict = dict.fromkeys(seq, 10)print "新字典为 : %s" % str(dict)以上实例输出结果为:新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None}新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}


python从右往左查找字符串位置 python 从后往前查找字符串_c截取字符串中的一部分_06



通过zip函数构建字典D = dict(zip(keyslist,valueslist))通过赋值表达式元组构造字典(键必须是字符串,因为如果不是字符串,构造的时候也会当成是字符串处理)D = dict(name='Bob',age=42) ==> {'name':'Bob,'age':42}列出所有的键,值.注意得到的是一个可迭代对象,而不是列表.用的时候需要转换D.keys() D.values() D.items() --> 键 + 值删除字典(根据键)以及长度D.pop(key) len(D) del D[key]新增或者是修改键对应的值D[key] = value # 如果key已经存在则修改,如果不存在就创建.


python从右往左查找字符串位置 python 从后往前查找字符串_python sorted下标_07


字典推导式D = [x:x**2 for x in range(10) if x %2 == 0]

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。