来源:极客学院
字符串
一、单引号、双引号和三引号
看下面的例子
c1="hello world" c2='hello world' c3='It is a "dog"' c4="It's a 'dog'" c5='It\'s a \'dog\'' c6="It's a \"dog\"" c7='''peng dong lin 163''' c8="""peng dong lin 163 """ print(c1) print(c2) print(c3) print(c4) print(c5) print(c6) print(c7) print(c8)
下面是运行结果
C:\Python27\python.exe D:/MY_Documents/Python/demo/yinhao.py hello world hello world It is a "dog" It's a 'dog' It's a 'dog' It's a "dog" peng dong lin 163 peng dong lin 163
从上面可以看出,单引号和双引号可以嵌套,如果想输出单引号,需要使用转义或者被双引号括住;同理如果想输出双引号,也需要使用转义或者用单引号括住。
二、自然语言
看例子
c1="pengdonglin\npengdonglin" c2=r"hello world\nhello world" print(c1) print(c2)
输出
C:\Python27\python.exe D:/MY_Documents/Python/demo/nature.py
pengdonglin
pengdonglin
hello world\nhello world
三、字符串重复
print("Hello World\n")*3 print("hello"*2)
输出:
C:\Python27\python.exe D:/MY_Documents/Python/demo/repeat.py
Hello World
Hello World
Hello World
hellohello
四、子字符串
c1="12345678" c2=c1[0] c3=c1[7] c4=c1[:2] c5=c1[2:] c6=c1[4:7] print(c1) print(c2) print(c3) print(c4) print(c5) print(c6)
输出
C:\Python27\python.exe D:/MY_Documents/Python/demo/sub_string.py
12345678
1
8
12
345678
567
总结:
索引运算符从0开始索引
切片运算符[a:b]是指从第a下标开始到第b-1下标。同样,第一位下标为0
数据类型
一、列表
#coding=utf-8 students=["小明","小华","小李","小娟","小云"] print(students[3]) students[2]="彭东林" print(students[2])
输出
C:\Python27\python.exe D:/MY_Documents/Python/demo/liebiao.py
小娟
彭东林
可以看出,列表的下标也是从0开始的,并且内容可以修改
二、元组
#coding=utf-8 students=("小明","小华","小李","小娟","小云") print(students[3]) students[3]="彭东林" print(students[3])
输出
C:\Python27\python.exe D:/MY_Documents/Python/demo/yuanzu.py 小娟 Traceback (most recent call last): File "D:/MY_Documents/Python/demo/yuanzu.py", line 6, instudents[3]="彭东林" TypeError: 'tuple' object does not support item assignment
可以看出,元组的下标也是从0开始的,但是内容不能修改。
三、集合
#coding=utf-8 a=set("abcnmaaaaggsng") print("a: {0}".format(a)) b=set("cdfm") print("b: {0}".format(b)) # 交集 x=a&b print("a&b: {0}".format(x)) # 并集 y=a|b print("a|b: {0}".format(y)) #差集 z=a-b print("a-b: {0}".format(z)) #去除重复元素 new=set(a) print(new)
输出
C:\Python27\python.exe D:/MY_Documents/Python/demo/jihe.py a: set(['a', 'c', 'b', 'g', 'm', 'n', 's']) b: set(['c', 'm', 'd', 'f']) a&b: set(['c', 'm']) a|b: set(['a', 'c', 'b', 'd', 'g', 'f', 'm', 'n', 's']) a-b: set(['a', 's', 'b', 'g', 'n']) set(['a', 'c', 'b', 'g', 'm', 's', 'n'])
四、字典
#coding=utf-8 k={"姓名":"彭东林","籍贯":"山西"} print(k["籍贯"]) # 添加字典里的项目 k["爱好"]="音乐" print(k["姓名"]) print(k["爱好"])
输出
C:\Python27\python.exe D:/MY_Documents/Python/demo/zidian.py
山西
彭东林
音乐
标识符
一、标识符
首字符不能是数字,只能是字母或者下划线,此外,Python大小写敏感。
二、关键字
常用的Python关键字有 and, elif, global, or, else, pass, break, continue, import, class, return, for, while。
对象
一、对象类型
Python的内置对象类型主要有数字、字符串、列表、元组、字典、集合等等。其实,在Python中,一切皆为对象。
运算符
#"+":两个对象相加 #两个数字相加 a=7+8 #$print a #两个字符串相加 b="GOOD"+" JOB!" #print b #"-":取一个数字的相反数或者实现两个数字相减 a=-7 #print a b=-(-8) #print b c=19-1 #print c #"*":两个数相乘或者字符串重复 a=4*7 #print a b="hello"*7 #print b #"/":两个数字相除 a=7/2 #print a b=7.0/2 c=7/2.0 #print b #print c #"**":求幂运算 a=2**3 #相当于2的3次幂,就是2*2*2 #print a #"<":小于符号,返回一个bool值 a=3<7 #print a b=3<3 #print b #">":大于符号,返回一个bool值 a=3>7 #print a b=3>1 #print b #"!=":不等于符号,同样返回一个bool值 a=2!=3 #print a b=2!=2 #print b #"//":除法运算,然后返回其商的整数部分,舍掉余数 a=10//3 #print a #"%":除法运算,然后返回其商的余数部分,舍掉商 a=10%3 #print a b=10%1 #没有余数的时候返回什么? #print b a=10//3 #a为商的整数部分 b=10%3 #b为 c=3*a+b #c为除数乘以商的整数部分加上余数,应该c的值就是被除数 #print c #"&":按位与运算,所谓的按位与是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算 a=7&18 #执行一下,为什么7跟18与会得到2呢?? #print a '''首先我们打开计算器,然后我们将7转化为二进制,得到7的二进制值是:111,自动补全为8位,即00000111 然后我们将18转化为二进制,得到18二进制的值是10010,同样补全为8位,即00010010 再然后,我们将00000111 ,跟 00010010按位进行与运算, 得到的结果是:00000010,然后,我们将00000010转化为十进制 得到数字二,所以7跟18按位与的结果是二进制的10,即为十进制的2 ''' #"|":按位或运算,同样我们要将数字转化为二进制之后按位进行或运算 a=7|18 #print a '''我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010 我们将 00000111 跟 00010010按位进行或运算, 得到的结果是 00010111,然后,我们将00010111转化为十进制 得到数字23,所以7跟18按位或的结果是二进制的10111,即为十进制的23 ''' #"^"按位异或 a=7^18 #print a ''' 首先,异或指的是,不同则为1,相同则为0. 我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010 我们将 00000111 跟 00010010按位进行异或运算, 得到的结果是 00010101,然后,我们将00010101转化为十进制 得到数字21,所以7跟18按位异或的结果是二进制的10101,即为十进制的21 ''' #"~":按位翻转~x=-(x+1) a=~18 #~18=-(18+1)=-19 #print a #"<<":左移 ''' 比如18左移就是将他的二进制形式00100100左移,即移后成为00100100,即成为36,左移一个单位相当于乘2,左移动两个单位 相当于乘4,左移3个单位相当于乘8,左移n个单位相当于乘2的n次幂。 ''' a=18<<1 #print a b=3<<3 #print b #"<<":右移 ''' 右移是左移的逆运算,即将对应的二进制数向右移动,右移一个单位相当于除以2,右移动两个单位相当于除以4,右移3个单位相当于 除以8,右移n个单位相当于除以2的n次幂。 ''' a=18>>1 #print a b=18>>2 #print b #"<=":小于等于符号,比较运算,小于或等于,返回一个bool值 a=3<=3#print a b=4<=3 #print b #">=" a=1>=3 #print a b=4>=3 #print b #"==":比较两个对象是否相等 a=12==13 #print a b="hello"=="hello" #print b #not:逻辑非 a=True b=not a #print b c=False #print not c #and:逻辑与 ''' True and True等于True True and False等于False False and True等于False ''' #print True and True #or:逻辑或 ''' True and True等于True True and False等于True False and False等于False ''' print True or False
二、优先级
#优先级使用实战 #优先级排行榜第1名——函数调用、寻址、下标 #优先级排行榜第2名——幂运算** a=4*2**3 #print a #优先级排行榜第3名——翻转运算~ #优先级排行榜第4名——正负号 #print 2+4*-2 #我们可以看,正负号的使用方法是紧挨着操作数的,否则会出错,这就说明正负号优先于加减乘除运算 #优先级排行榜第5名——*、/、% #print 2+4*2/4 #优先级排行榜第6名——+、- #print 3<<2+1 #优先级排行榜第7名——<<、>> #优先级排行榜第8名——按位&、^、|,其实这三个中也是有优先级顺序的,但是他们处于同一级别,故而不细分 #优先级排行榜第9名——比较运算符 a=2*3+5<=5+1*2 #print a #优先级排行榜第10名——逻辑的not、and、or #优先级排行榜第11名——lambda表达式
控制流
一、顺序
a=8 print(a) a=a-1 print(a) a+=6 print(a)
二、分支
xiaoming="nnn" if xiaoming=="eat": print("小明很乖") else: print("小明不乖") score=60 if score>=60: print("及格") else: print("不及格")
三、for循环
for i in range(0,3): print i
输出:
0
1
2
四、while循环
a=3 while a>=0: print a a-=1
输出:
3
2
1
0