字符串一、单引号、双引号和三引号
看下面的例子
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