Python之旅第二天(第一天补充部分、数据类型、运算逻辑、部分方法的引入、pycharm)
今天其实是有点小忙的,但是干自己不喜欢事情的结果就是,要睡觉了都不知道自己在忙鸡毛,所以还是不继续想了,脑仁疼。回忆一下今天的学习内容,着实有点少,本大侠还没怎么过瘾呢。废话不多说。
while补充两个重要的单词:
continue:提前结束本次的while循环,重新验证while条件,开始下次循环
break:直接跟本while循环说再见,结束循环
所以昨天的限制输入三次机会的题目我可能写的太麻烦了,重新记录如下吧。
a = 1 name = "bab" mima = "mom" while a < 4: name_user = input("请输入用户名") mima_user = input("请输入密码") if name_user == name and mima_user == mima: print("欢迎进入你的世界") break else: print("请重新输入") a = a + 1 if a == 4: print("三次机会已用完") else: pass
这下子逻辑顺序貌似更顺一点了,事实证明,笨人总能找到解决办法,智商确实只是个buff,打怪还是得靠普攻和技能。
关于计算机对照码的问题(集中于ASCII、utf-8、GBK、unicode)
昨天看到python2运行print汉字的时候出现乱码的问题,一直没怎么想明白,下面为今后可能忘了的我介绍一下他们的存在
ASCII:鹰酱最早用电脑,所以最早的电脑都是他们做的,1个字节对应所有,算下来就是256个不同形式的字母和乱七八糟的符号。
GBK:作为种花家的传人,用2个字节表示一个汉字,从此电脑认识了种花家的字
unicode:万国码,各国都有用电脑的需求,所以他们规定至少用16位二进制数对应,识别万物,但是对1个字节的ASCII来说有点浪费,于是下面这个家伙出场了。
utf-8:短的用短的,长的的用长的,就是一个unicode的压缩版,但是他表示汉字的时候要3个字节。
昨天用python2设置识别#-*- coding:utf-8 -*-之后,文字是按照3字节识别的,但是我们在用Windows时候是用的GBK模式储存,那么都存成1010101000.。。。。搞不清分段,自然就错了。
废话说的果然多啊
逻辑运算的问题(and、or、not)
意思很容易理解,主要是运算的先后顺序问题,如果有括号,自然是先算括号里面的。
但是如果:
user = "alex" pwd = 123 v = user=="alex" and pwd ==123 or 1==2 and pwd==12 print(v)
这个v是true还是false呢?
原则是这样的,从左向右
true 遇到 or 不走了,反正前面对的,后面不管是啥,结果就是true
true 遇到 and 请继续算吧
false遇到 or 请继续吧
false遇到and 不走了,反正前面错了,后面对的也是个false
接下来是数据类型:
int、str、bool、list、tuple、dict
部分方法的引入:
关于int类型的:
num = "0011"
v = int ( num , base = 16)
将num的str类型转换为int类型,具体按照几进制参考base,没写就默认十进制。
age = 20
r = age.bit_length() 这个数字用二进制表示至少需要几位
关于str类型的:
capitalize 首字母大写 casefold 任意国家的文字转为小写(不咋用)
lower 转所有英文字母为小写
center 设置宽度,并填充内容,同时将str居中
test = "alex" v = test.centr(20,"*")
得到的结果**********alex**********
count(“ ”,num(start) , num2(end)) 制定某一字符片段,在一点区间内出现次数,不限定区间则默认全部。
endswith(“ ”,num(start) , num2(end)) 判定是否以“ ”内字符结尾,得bool类型
startswith(“ ”,num(start) , num2(end)) 判定是否以“ ”内字符开始,得bool类型
find(“ ”,num(start) , num2(end)) 找到“ ”内的内容是在某一范围的什么位置开始的,不限定范围则是全部,找不到的-1.(index功能相同,但找不到会报错)
isalnum 判定该str是否只由数字和字母组成,得bool类型
格式化,将一个字符串中的占位符替换为指定的值
test = 'i am {name}, age {a}'
print(test)
v = test.format(name='alex',a=19)
print(v)
test = 'i am {0}, age {1}' 按顺序进入查找的,排序记得从0开始。
print(test)
v = test.format('alex',19)
print(v)
format_map具有一定的检索功能
格式化,传入的值 {"name": 'alex', "a": 19} 这个不是很明白,大致传送的是一个字典
test = 'i am {name}, age {a}'
v1 = test.format(name='df',a=10)
v2 = test.format_map({"name": 'alex', "a": 19})
今天我的电脑有毛病,pycharm一直搞不定,耽搁时间了,哎呀,第二天还是很开心啊。