字符串

一、单引号、双引号和三引号

看下面的例子



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, in <module>
students[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