根据前两天的学习,对Python有了一点小小的认识,目前兴趣指数仍为5颗星,哈哈,所以周六到晚上8点钟,还是坚持学习了新内容,以下为新内容的总结:
给自己的博客书写定个规矩,一级标题用标题2大小,依次类推逐渐减小;
一级标题用“一”、二级标题用“(一)”、三级标题用“1”、四级标题用“(1)”、五级标题用“①”、六级标题用“1)”...
重新学习一下数据类型和运算符。
一、运算符
需要注意的事情:
(一)Python中判断运算的用法
name_01="小果子"#定义name_01为字符串类型; v="小"in name_01#判断“小”是否在name_01中,我觉得Python这个功能实在是不能在方便了。 print(v)#输出结果为True
(二)运算的优先级问题
1、有括号的先算括号内的内容;
2、逻辑运算顺序:无括号的,按顺序执行,从前往后运算。
jieguo_1=2>1 and "小" not in "果果" or 1+1>3#共3个part,第一个是2>1,为True,第二个"小" not in "果果"也为True,后面的不在执行 print(jieguo_1)#输出为True # 执行到哪里,需要看逻辑运算及其前后的bool值 # True or ==>True # True and ==>继续走 # False or ==>继续走 # False and ==>False
二、数据类型
(一)数字
在Python中,和其他程序最大的进步就是没有长短整型的分类了,不管数字有多大,统称int,具体能装多大数,看系统能力了,64位系统是32位系统的2倍。
下面是数字类型的一些常用方法及属性
1、转换到数字类型的函数,int(num,base=none);
将字符串或者其他形式的数字转换到数字类型,有些特殊的情况,比如超出范围等情况不做探究;默认要转换的数字/字符串为10进制,如果是其他进制,需要在base=none中声明。
a="111" #定义a为字符串类型。 v=int(a,base=2)#定义v为数字类型,int()将a转换为了10进制的数字类型,base=2表示要转换的a为2进制数字。 print(v)#输出结果为7
报错的使用方法
#第一种常用情况 a="3b" v=int(a) #执行中,系统会判断,在10进制情况下是没有b的,无法转换,报错 print(v) #第二种常用情况 a="3+6" v=int(a)#无法运算字符串 print(v)
2、数字类型的一些基本属性
num_01=-717521 v_1=num_01.bit_length()#表示数字转换到2进制情况下,至少占用的位数; v_2=num_01.__abs__()#返回绝对值,注意abs前后是两个半角下划线; print(v_1,v_2)#输出结果为20 717521
其他的属性,后续在学习,基本上都是一些数字运算的问题,平常用处不大。
(二)字符串
字符串的属性很多,看的眼花缭乱,通过两天的学习和整理,基本上知道了一些基础的用法,现整理如下:
#属性中的self不用管,不用指定值 #start为闭区间,end为开区间,start≤sub<end,顾首不顾尾 #*args, **kwargs,等为任意的参数 #index()索引,查找位置 #返回的int都是相对于其真实位置(从左边数) #无数据返回时,会报错。 str="小果果是一只笨蛋" s1=str.index('果') s2=str.rindex("果") print(s1,s2)#输出结果为1 2 #count()查找指定的子序列在str中出现的次数 # 若没找到返回:0 str='小果果是一只狗子' s=str.count("果")#‘果’在test中出现的次数,输出int值; print(s) #format()格式化,将字符串中的占位符(必须是半角的{})替换为指定的值. #3种方法:1、按默认从左到右的默认顺序传值,2、按指定位置传值,3、按设置参数传值,返回格式化后的字符串 str='my name is {},' s1=str.format("alex") v=str.format_map(mapping})#另外一种格式化,括号中的mapping是一个字典对象。 print(s1) #encode()和decode(),编码和接码属性,后续在研究 s="你好啊小果果" s1=s.encode("utf-8")#以指定的编码格式对字符串进行编码,并返回编码后的二进制;encode(self, encoding='utf-8', errors='strict') print(type(s1),s1) s2=s1.decode("utf-8") print(type(s2),s2) #title()将字符串中的所有单词的首字母的替换成大写字母 str='alex jim hhhh' s1=str.title() s2=s1.istitle()#是否首字母为大写,且其他字母为小写(一般用于识别标题,对中文感觉没有用啊) print(s1,s2)#输出Alex Jim Hhhh True #ljust(),rjust()填充,从左边、右边、两边填充指定的参数,长度为必须参数 str='* 是吗' s1=str.ljust(10,"你")#返回一个左对齐的字符串,width为长度,fillchar可填写一个str s2=str.rjust(10,"你") s3=str.center(10,'你')#sub在指定的width(宽度)中的位置,fillchar可填写一个str(写int报错) print(s1,s2,s3) #zfill()填充,按指定长度在字符串的左侧填充"0"补齐,无法填充其他的,不如ljust()好用 str='我是小果果' s1=str.zfill(20) print(s1) #swapcase(),casefold(),capitalize()大小写相关的互换。 s=str.swapcase()#大小写转换 s1=str.casefold()#所有的字符变小写,输出str值 s2=str.capitalize()#首字母大写,其他字母变小写,输出str值,对于英文来说,好处就是统一格式,对中文啥用,目前想不起来 #maketrans(),translate()建立对应关系,并对字符进行对换位置。 old='12345' new='abcde' str='真的不错啊12345' s1=str.maketrans(old,new)#建立对应关系(映射表),字典格式 s2=str.translate(s1)#对上面建立的映射表进行替换(翻译) print(type(s1),type(s2),s2)#输出<class 'dict'> <class 'str'> 真的不错啊abcde #expandtabs(),把字符串中的 tab 、换行 、转为空格(默认的步长为8,从左边开始执行,无符号不执行)。爬虫的时候可以将格式对齐 s="12345678888 133" v=s.expandtabs() print(type(v),v)#输出<class 'str'> 12345678888 133 ###################################### #以下都是is相关的属性,输出bool值 #当前输入是否是数字(适应于文件操作,一、1、①等读写) s1=str.isdecimal()#是否全是十进制字符,这种方法只存在于unicode对象。 s2=str.isdigit()#是否全是数字 s3=str.isnumeric()#是否全是数字,只针对unicode对象。 #判断是否都是大小写,和转换为大小写 s=str.lower( )#将字符串中的大写字母转换成小写字母 s=str.upper() s=str.islower()#是否全是小写 s=str.isupper()#是否全是大写 text="zh1en" v=text.isalnum()#是否是否由字母或数字组成 v=text.isalpha()#是否全为字母或汉字 v=text.isspace()#是否全部都是空格 v=text.isprintable()#打印出来和字符串一样,输出True,包含/t(制表符Tab),/n(换行)等为Flase v=text.isidentifier()#判断是否是合法标识符,实际上是判断变量名是否合法。 #判断开头(前缀)、结尾(后缀)的字符是否一致 #startswith()#判断字符串是否是以指定字符串开头并返回布尔值 #endswith() #############重点需要记熟的属性################### #find() 索引,查找位置 # 返回的int都是相对于其真实位置(从左边数) # 无数据返回时,返回-1。需要子序列完全匹配 str='小果果是一只狗子' s1=str.find("果")#看sub的位置,从0开始数,输出int值,find(self, sub, start=None, end=None) s2=str.rfind('棕色') print(s1,s2)#输出结果为 1 -1 #strip(),去处左右空格(包括空格,/t,/n,/r) #若加入参数,则移除指定字符,有限最多匹配。 # 注意删除多个字符时:只要头尾有对应其中的某个字符即删除,不考虑顺序,直到遇到第一个不包含在其中的字符为止 str='**小果果是一只小狗子**' s1=str.strip('*小子果')#输出 是一只小狗 s2=str.lstrip('*') s3=str.rstrip('*') print(s1) print(s2) print(s3) #split(),对字符串进行切片、分割。 #返回值为list列表形式返回 #正则表达式分割,后续学习。 str='**小果果是一只小狗子**' s3=str.split("小",6)#split(self, sep=None, maxsplit=-1) s4=str.rsplit() s5=str.splitlines()#分割,可以加入参数为True、False来决定是否保留换行符 print(type(s3),type(s4),type(s5),s3,s4,s5) #按从左到右的顺序,对字符串进行分割,返回一个包含3个元素的元组,这个元组中这3个元素分别为:指定分割符,以及以这个分隔符为中心的左右两侧的字符串。 #s1=str.partition()#只能分3份 #s2=str.rpartition() #replace()替换,将指定的字符串替换成新的字符串,并返回替换后的字符串。可以指定替换的次数,若不指定次数则默认替换全部。 str='**小果果是一只小狗子**' s1=str.replace('小','chali',1)#参数分别为 被替换,替换,替换次数 print(s1)#输出**chali果果是一只小狗子** #join()拼接,将字符串中的元素以指定的分隔符进行拼接;join(self, iterable) str='*' s1=str.join("你是不是小果果") print(s1) #你*是*不*是*小*果*果
以上字符串的属性肯定是会忘得,但是在整理的过程中,学习了一些用法和思维方式,也算挺好。
第一周结束语
第一周的学习内容就这么多了,继续加油吧~整个人其实还是好的!