一、 __future__ 模块
Guido van Rossum (Python之父)拥有一架时光机,因为在人们通常要求增加语言新特性的时候,这个特性通常都已经实现了。当然我们一般人是不允许进入这架时光机的。
Guido将时光机的一部分以__future__这个模块的形式融入了python。通过它可以导入那些在未来会成为标准Python组成部分的新特性。
二、 逻辑运算
'''x or y x True,则返回x'''
>>> print(1 or 2)1>>> print(2 or 1)2>>> print(0 or 1)1>>> print(2 or 0)2
'''x and y x True,则返回y'''
>>> print(0 and 2)0>>> print(2 and 0)0>>> print(1 and 2)2>>> print(2 and 1)1
# “>","<"的优先级高于not > and > or ,True 和 False 不会转化为1或0>>> print(2 or 1<3)2>>> print(1<3 or 2)True>>> print(1>3 and 2)False>>> print(1<3 and 2)2>>> print(True or 0)True>>> print(True and 0)0>>> print(False or 2)2>>> print(False and 2)False
三、 格式化输出
格式一:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 name = input("请输入姓名:") 2 age = input("请输入年龄:") 3 height = input("请输入身高:") 4 msg = "my name is %s, my age is %s, my height is %s, my process is 80%%" %(name,age,height) 5 print(msg) 6 # 运行结果: 7 # 请输入姓名:liuyankui 8 # 请输入年龄:25 9 # 请输入身高:17510 # my name is liuyankui, my age is 25, my height is 175, my process is 80%
1 name = input("请输入姓名:") 2 age = input("请输入年龄:") 3 job = input('请输入工作:') 4 hobbie = input('请输入爱好:') 5 msg = '''------------ info of %s ----------- 6 Name : %s 7 Age : %d 8 job : %s 9 Hobbie: %s10 ------------- end -----------------''' %(name,name,int(age),job,hobbie)11 print(msg)12 # 输出结果13 # 请输入姓名:liuyankui14 # 请输入年龄:2515 # 请输入工作:IT16 # 请输入爱好:PingPong17 # ------------ info of liuyankui -----------18 # Name : liuyankui19 # Age : 2520 # job : IT21 # Hobbie: PingPong22 # ------------- end -----------------
1 name = input("请输入姓名:") 2 age = input("请输入年龄:") 3 job = input('请输入工作:') 4 hobbie = input('请输入爱好:') 5 msg = '''------------ info of {0} ----------- 6 Name :{0} 7 Age : {1} 8 job : {2} 9 Hobbie: {3}10 ------------- end -----------------''' .format(name,age,job,hobbie)11 print(msg)12 13 # 运行结果:14 # 请输入姓名:liuyankui15 # 请输入年龄:2516 # 请输入工作:IT17 # 请输入爱好:PingPong18 # ------------ info of liuyankui -----------19 # Name :liuyankui20 # Age : 2521 # job : IT22 # Hobbie: PingPong23 # ------------- end -----------------
四、 int 和bool值互相转换
int ----> bool 非零转换成bool True 0 转换成bool 是False
1 >>> print(bool(2)) 2 True 3 >>> print(bool(1)) 4 True 5 >>> print(bool(0)) 6 False 7 >>> print(bool(-2)) 8 True 9 # bool ----> int False ----> 0; True ----> 110 >>> print(int(False))11 012 >>> print(int(True))13 1
五、 while...else...语句
count = 0while count <= 5: count += 1 if count == 3:break print("Loop",count)else: # 当break打断while循环,else的内容就不再执行 print("循环正常执行了")print("------------------")
六、 Python字符串
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 # 字符串 2 3 # 字符串索引 4 a = 'abcdefghijklmn' 5 print(a[0]) # a 6 print(a[3]) # d 7 print(a[-1]) # n 8 print(a[-5]) # j 9 10 # 字符串切片11 # 切片是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串,12 # 原则就是顾头不顾腚13 a = 'abcdefghijklmn'14 print(a[0:3]) # abc15 print(a[2:5]) # cde16 print(a[0:]) # abcdefghijklmn17 print(a[0:-1]) # abcdefghijklm18 print(a[0:5:2]) # ace19 print(a[5:0:-2])# fdb20 21 # 字符串常用方法22 name = 'liu-yan*kui LIU'23 # 首字母大写24 print(name.capitalize()) # Liu-yan*kui liu25 # 大小写翻转26 print(name.swapcase()) # LIU-YAN*KUI liu27 #每个单词的首字母大写28 print(name.title()) # Liu-Yan*Kui Liu29 30 # 内同居中,总长度,空白处填充31 ret = name.center(30,'-')32 print(ret)33 # 输出:34 # -------liu-yan*kui LIU--------35 36 37 38 # 数字符串中元素出现的个数39 a1 = 'liuyankuiliuyankui'40 print(a1.count('i')) # 441 print(a1.count('liu')) # 242 print(a1.count('l',0,12))# 243 44 # \t前面的补全,默认将一个tab键变成8个空格,如果tab前面的字符不足8个,则补全8个,45 # 如果tab键前面的字符长度超过8个不足16个,则补全16个,以此类推46 a2 = 'hfdgdjjlk\tlkj\tlk'47 ret3 = a2.expandtabs()48 print(ret3) # hfdgdjjlk lkj lk49 50 a4 = 'jgklajlkajioufgakljsakj'51 # startswith: 判断是否以...开头52 # endswith: 判断是否以...结尾53 ret4 = a4.endswith('ajlk',2,8) # 顾头不顾腚54 print(ret4) # True55 ret41 = a4.startswith('la',3,9)56 print(ret41) # True57 58 # 寻找字符串中的元素是否存在59 ret5 = a4.find('kl',2,10) # 返回的是找到的元素的索引,如果找不到返回-160 print(ret5) # 261 62 ret51 = a4.index('aj',4,13) # 返回找到元素的索引,找不到报错63 print(ret51) # 464 65 # split 以什么分割,最终形成一个列表,此列表不含有这个分割的元素66 ret6 = a4.split('a')67 print(ret6) # ['jgkl', 'jlk', 'jioufg', 'kljs', 'kj']68 ret91 = 'title,Tilte,atre,'.rsplit('t',1) # 从右边开始分割,分割一次69 print(ret91) # ['title,Tilte,a', 're,']70 71 ret92 = 'title,Tilte,atre,'.rsplit('t',3) # 从右边开始分割,分割3次72 print(ret92) # ['ti', 'le,Til', 'e,a', 're,']73 74 75 # format的三种玩法,格式化输出76 print('{} {} {}'.format('egon',18,'male')) # egon 18 male77 print('{1} {0} {1}'.format('egon',18,'male')) # 18 egon 1878 print('{name} {age} {sex}'.format(sex = 'male',name = 'liuyk',age = 18)) # liuyk 18 male79 80 # strip81 b1 = '-- ***liuyankuih***** --'82 print(b1.strip('- *')) # liuyankuih83 print(b1.lstrip(' *-')) # liuyankuih***** --84 print(b1.rstrip('* -')) # -- ***liuyankuih85 86 # replace87 name2 = 'alex say: i have one tesla, my name i alex'88 print(name2.replace('alex','SB',1)) # 1 是只替换一次89 90 name3 = 'liuyankui163'91 print(name3.isalnum()) # 字符串由字母或数字组成92 print(name3.isalpha()) # 字符串只由字母组成93 print(name3.isdigit()) # 字符串只由数字组成
七、 for循环
t1 = 'sdkslflggjad'for i in t1: print(i)
八、 小数据池
1 #数字,字符串,小数据池 2 #数字的范围 -5 -- 256 3 #字符串:1,不能含有特殊字符; 4 # 2. s*20 还是同一个内存地址,超过则两个 5 # i1 = 2 6 # i2 = 2 7 # print(i1 is i2) # True 8 9 # s1 = 'a'*2010 # s2 = 'a'*2011 # print(s1 is s2) # True
九、is
1 # = 赋值 == 比较值是否相等 is 比较,比较的是内存地址 id(内容)2 # li1 = [1,2,3]3 # li2 = li14 # li3 = li25 # print(id(li1),id(li2))