每天遇到的新单词: recursion n:递归 objece n:对象 maximum adj:最大值 exceed v:超过,超越 exceeded adj:过度的,非常的 attribute v:认为是 isdigit n:数字 task n:任务 encode v:编码 decode v:解码 separator n:分隔符
组合数据类型的遍历: 列表,元组,集合都可以用for直接遍历如: for x in f: print(x) 但是字典不能, 字典只能用for x,y in f.items(): print(x,y) 字典的items()函数是遍历出所有的键值对,keys()函数是遍历出所有的keys, values()函数是遍历出所有的values. for x in f.keys() for x in f.values() print(x) print(x)
python中的命名规范,不用看具体代码就能知道该名字代表的是什么: import tools #引入一个 模块 tools.user #代表一个变量 tools.show_user() #函数 tools.Auther #类型 其他命名法:show_user事用的最多的下划线命名法 showUser 小驼峰命名法 ShowUser 大驼峰命名法
代码一定要注意规范!
代码中ctrl+鼠标左键是打开该函数
基础数据类型是不可变的数据类型 a=10 b=a b=12 结果是:a=10,b=12 组合数据类型是可变的数据类型 a=[1,2,3] b=a b.append[12] 结果是:a=[1,2,3,12] b=[1,2,3,12]
别的文件中的全局变量在本文件中不用声明global name,可以直接 data.name="tom"修改它的值,但是本文件中的 全局变量必须global+变量名声明一下才能进行修改
完善个人资料? 可变参数类型的输出值是元组吗?
python中如果想打印%就用两个%
************************************ 1.字符串:代码中包含在一对引号中的字符/三引号中的字符,引号可以是单引号也可以是双引号,如: s1 = "这是一个字符串" s2 = '这也是一个字符串' s3 = """ 这是一个长字符串 支持换行 在某些情况下,可以当成(文档)注释使用[不赋值] 比如在文件的开头、函数的开头、类型的开头 """
2.转义字符: s4 = "这是一个'特殊'的字符串,单引号和双引号可以交叉使用" s41 = '单引号字符串中可以"直接包含"双引号' # 转义:转变原来的含义,符号: \ # \t:将一个普通的字符t,转变成tab制表符,意思是空格 # \n:讲一个普通的字符n,转变成换行符,意思是换行 # \r:将一个普通的字符r,转换成回车符,意思是回车 s5 = "双引号中如果想显示双引号,必须使用转义符号,这又是一个\"特殊\"的字符串"
3.字符串的拼接: 两个字符串可直接通过连接符号+拼接 s = "hello" s2 = "world" s3 = s1 + s2 字符串类型不可以和其他类型直接拼接 # i1 = 10 # s4 = s + i1 # print(s4) # TypeError: must be str, not int
4.字符串的特殊拼接:占位符拼接 # 字符串占位符:%s,%d,%f name = input("请输入您的姓名:") s5 = "welcome to China, my name is " + name s6 = "welcome to china, my name is %s" % name s7 = "hello my name is %s, %s years old!" % (name, 18)
# 整数占位 s9 = "this goods%% is ¥%d" % 100 print(s9)
# 浮点数占位 s10 = "圆周率是%.10f" % 13.1415926 #小数点后边的数字代表小数点后边保留的位数,默认为6位 print(s10) s="%.*f"%(2,1.2) # *和后边的括号中的第一个数对应,表示保留几位小数,第一个数必须是整数
占位符也可以指定占用多少个位置: s="abc%20s"%"hello" %百分号后边的数字表示后边的字符需要占用的位置,默认是加号表示右对齐,同下 >>> s 'abc hello' >>> s="abc%+20s"%"hello" >>> s 'abc hello'
>>> s="abc%-20s"%"hello" %百分号后边的数字表示后边将要输出的字符占用的位置,减号表示左对齐 >>> s 'abchello '
5.字符串函数: 字符串函数:python系统内内置的对字符串的各种操作的支持 ['capitalize', 'casefold',center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map','index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower','isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust','lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase','title', 'translate', 'upper', 'zfill'] *** capitalize:首字母大写 upper大写 lower小写 #使字符串变成自己想要变成的类型:n.upper() istitle是否首字母大写 isupper是否大写 islower是否小写 #下面三个是判断时使用的, 用于返回True和False,如a=hello a.istitle() 结果就是返回一个False
capitalize v:用大写字母写
*** 6.字符串中的对齐方式和剔除空格 s = "hello" s.center(10) #意思是s在操作的时候,占用10个字符,并且内容居中对其 s.center(11, '-') #意思是s在操作的时候,占用11个字符,居中对其,空白的位置使用指定的字符补齐 s.ljust(10,“*”) # s占用10个字符,左对齐,空白的位置使用指定的字符补齐 s.rjust(10) # s占用10个字符,右对齐
s="1" s.rjust(4,"0") 结果是:'0001'
s.lstrip() # 删除字符串s左边的空格 #stirp v:删除清除 s.rstrip() # 删除字符串s右边的空格 s.strip() # 删除字符串s两边的空格
7.判断字符串里面是不是只包含整数:isdigit() 里面如有字符或者小数点都会返回False, 因为会把小数点当做字符串处理 s="12" >>> s.isdigit() #digit n:数字 True
>>> s="12a" >>> s.isdigit() False
>>> s="12.11" >>> s.isdigit() False
8.判断字符串里面有没有字母以外的东西: isalpha() 大小写纯字母都会返回True , 字母之外的任何字符都会返回False,下划线也不例外: s="abAB" >>> s.isalpha() True
>>> s="a1" >>> s.isalpha() False
>>> s="a_b" >>> s.isalpha() False
9,判断字符里面是不是只包含大小写字母和数字: isalnum() 如果是的话返回True, 如果包含其他任何特殊字符都会返回False: s="aA123" >>> s.isalnum() #alphanumeric True #adj:文字数字的,包含文字与数字的
>>> s="aA1_2" >>> s.isalnum() False
*** 10.字符串的查询/匹配操作:(为什么要有两个查询?因为python是很多人很多组织一起写的, 并没有互相通知,所有出现同一个功能会有不同的函数) # # find / rfind # # index / rindex # s = "hello" # x = s.find("lo") # 查询指定的字符串第一次出现的位置;如果没有查询到返回-1 # x2 = s.index("lo")# 查询指定的字符串第一次出现的位置;如果没有查询到直接报错Error 11.一个字符串的编码,可以把字符串编码成不同的形式:encode() encode:v编码 s="我爱你" >>> s.encode("utf-8") #把我爱你以utf-8的编码形式重新编码, b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0' #前面b开头是指的是这是以二进制开头的字符串,byte:字节 >>> s.encode("gb2312") #把我爱你以国标2312的编码方式重新编码 b'\xce\xd2\xb0\xae\xc4\xe3'
s=b"str" 以b开头的都是表示二进制形式的字符串(括号里面不能是中文,其他都可以) >>> s b'str' >>> type(s) <class 'bytes'>
如果别人给你一串二进制形式的字符串,你还可以解码: decode() decode:v解码 如果: s="我爱你" >>> s.encode("utf-8") b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0' 解码: #前提是要知道别人是以哪种方式编码的 a=b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0' a.decode("utf-8") 我爱你 12.查看字符串是否以某个字符串开头或结尾: s.startswith("he") # 判断s是否是"he"开头的字符串吧,返回True/False s.endswith("lo") # 判断s是否是"lo"结尾的字符串,返回True/False
13.把有序的字符串以某种形式连接起来: 列表,元组,集合都可以,字典不可以 "--".join(["abc","123"]) 'abc--123'
*** 14.字符串的拆分: 字符串的拆分 # a="http/jgoig/ghoig/gogi/12.jpg" # # 拆分字符串 >>> a.partition("/") #在字符串中看有什么样的分隔符括号里面就用哪个分隔符来拆 ('http', '/', 'jgoig/ghoig/gogi/12.jpg') #partition()默认从左边第一个分隔符那拆,把整个字符串分成/左右两部分
>>> a.rpartition("/")[-1] #rpartition()从右边开始拆,并以切片的方式返回最后一个值 '12.jpg'
>>> a.split("/") #split()是把整个字符串在所有分隔符的地方拆开 ['http', 'jgoig', 'ghoig', 'gogi', '12.jpg'] >>> a.split("/")[-1] #把整个字符串在所有分隔符的地方拆开并返回最后一个值 '12.jpg'
*** 15.字符串的替换[查询->替换]replace: a="hello" >>> a.replace("l","*") #括号内内第一个值是要被替换的东西,,第二个值是要替换的内容 'he**o' >>> a.replace("l","*",1) #括号中的第三个值是可选的,代表替换的个数, 'he*lo' 不写的话默认的是将字符串中的原数据全部替换,这里写1是指只替换一个l
content = "发表一TMD片文章:文TMD章内容中TMD今天真热" # print(content) # content = content.replace("TMD", "***") # print(content)