目录
一、Python基础与运算
1、数据类型
python中的标准数据类型有六种:数字、字符串、列表、元组、集合、字典。
(1)数字类型
数字类型分为整数和浮点数
整数:1,2,3,...
浮点数:1.1,3.45,...
(2)变量
变量起名要有意义
book_num=1000
age=34
python中变量起名要合法:只能由字母、数字、下划线组成,首字母不能为数字;
eg
声明整数变量:
#声明一个变量
first_number=1
print first_number #打印first_number
print type(first_number) #查看first_number的数据类型
输出结果:
声明浮点数变量同理。
2、布尔型变量
声明一个布尔型变量
boolean=True
print boolean
print type(boolean)
输出结果:
注意:此处True首字母要大写
3、基本运算符
(1)加法运算
'''
python的基本运算符
+ - * /
'''
num_1=12
num_2=3
result=num_1+num_2
print result
(2)减法运算
'''
python的基本运算符
+ - * /
'''
num_1=12
num_2=3
result=num_1-num_2
print result
(3)乘法运算
'''
python的基本运算符
+ - * /
'''
num_1=12
num_2=3
result=num_1*num_2
print result
(4)除法运算
'''
python的基本运算符
+ - * /
'''
num_1=12
num_2=3
result=num_1/num_2
print result
以上例子为整数,整数和整数、浮点数和浮点数运算结果分别是整数和整数,现在验证一个浮点数和一个整数进行运算结果会是浮点数吗?
可以看出,整数和浮点数在运算后无论是乘除加减结果的数字类型都是浮点数。
4、算术运算符
(1)取模运算
取模运算其实就是取余数
'''
算术运算符
'''
#取模运算
i=10
j=3
z=i%j
print z
运算结果:
(2)幂运算
z=i**j
print z
运算结果:
(3)取整除运算
z=i//j
print z
运算结果:
5、赋值运算符
(1)等号
(2)加等于
i=1
i+=5
print i
输出结果:
i+=5:就是i=i+5,把6这个新的值赋值给等号左边的i
(3)减等于
i=1
i-=5
print i
输出结果:
(4)乘等于
(5)除等于
(6)幂等于
(7)模等于
以上皆类同,就是在等号前加个基本运算符/算术运算符,可自行体会
6、进制运算
进制:十进制、二进制、八进制、十六进制
十进制:1,2,3,4,5,6,7,8,9
二进制:0,1,10,11,100,101,110,111
进制之间的相互转换:
1、十进制转换成其他进制
(1)十进制转二进制
i=16
j=bin(i)
print j
输出结果:
其中,ob代表这个进制是二进制,10000代表这个数字是10000
(2)十进制转八进制
i=16
j=oct(i)
print j
输出结果:
其中,0o代表这个进制是八进制,20代表这个数字是20
(3)十进制转十六进制
i=16
j=hex(i)
print j
输出结果:
其中,0x代表这个进制是十六进制,10代表这个数字是10
2、其他进制转换成十进制
(1)二进制转十进制
i='10' #要把i用字符串形式呈现,要用引号,不然会报错
j=int(i,2) #代表这个i是二进制数字不是十进制数字
print j
输出结果:
(2)八进制转十进制
i='10' #要把i用字符串形式呈现,要用引号,不然会报错
j=int(i,8) #代表这个i是二进制数字不是十进制数字
print j
输出结果:
(3)十六进制转十进制
i='10' #要把i用字符串形式呈现,要用引号,不然会报错
j=int(i,16) #代表这个i是二进制数字不是十进制数字
print j
输出结果:
(4)八进制转十六进制
i='10'
j=hex(int(i,8))
print j
输出结果:
7、位运算
(1)按位与运算(&)
i=11
j=2
z=i&j
print z
输出结果:
原理如下:
11和2都转换为二进制
i=11
j=2
z=i&j
print z
print bin(i)
print bin(j)
输出结果:
i=1011
j=0010
如果以上两个值相应位置都为1,那么为1,结果则为0010,对应十进制就是2。
(2)按位或运算(|)
i=11
j=2
z=i|j
print z
print bin(i)
print bin(j)
输出结果:
如果以上两个值相应位置有一个为1,那么为1
(3)按位异或运算(^)
i=11
j=2
z=i^j
print z
print bin(i)
print bin(j)
输出结果:
如果以上两个值相应位置数字不同,那么为1
(4)按位取反运算(^)
i=11
z=~j
print z
print bin(i)
print bin(z)
输出结果:
按位取反就是z=-i-1
(5)左移运算符(<<)
i=11
z=j<<2 #把11的二进制左移两位
print z
print bin(i)
print bin(z)
输出结果:
(6)右移运算符(>>)
原理同左移运算符
8、条件控制
比较运算符:‘==’ 比较两个值是否相等
注释:# 单行注释;''' '''多行注释(方式一);""" """(方式二)
if 语句
a=3
if a>2:
print 'a比2大'
else:
print 'a比2小'
当涉及布尔值是:
done=True
if done:
print 'done'
else:
print 'not be done'
另一种形式是elif,使分支更多
name='Sue'
if name=='Sue':
print 'Hello,Sue!'
elif name=='Bob':
print 'Hello,Bob!'
elif name=='Gay':
print 'Hello,Gay!'
else:
print 'Who are you?'
raw_input(' ')
name=raw_input('What\'s your name?') #What后面加了一个'\'是采用了原始字符串的做法,避免中间的'和句子两头的'起冲突
if name=='Sue':
print 'Hello,Sue!'
elif name=='Bob':
print 'Hello,Bob!'
elif name=='Gay':
print 'Hello,Gay!'
else:
print 'Who are you?'
输出结果:
二、python的字符串、组类型与循环
1、声明一个字符串
(1)单引号声明
s='Hello,world!'
(2)双引号声明
s="Hello,world!"
(3)三引号声明
s='''
Hello,
world!
'''
以上三种结果输出:
三引号声明字符串时,每一行后有一个“看不见的换行符”,导致最后输出结果会换行。
2、字符串的操作
查看某一字符串第一个字母/数字
s='Hello,world!'
s[0]
输出结果:
这里涉及到的是索引的应用:查看某一字符串s的第n个字母/数字,写作s[n-1]
3、字符串的切片操作
访问字符串中的子串
s1='hello,world!'
s2='python'
s1[0,5]
输出结果:
字符串相加
print '我是'+s1[0:5]
输出结果:
字符串的更新
s1='hello,python'
s2='python'
print s1[:6]+s2
输出结果:
4、字符串的成员运算
(1)包含运算
s1='hello,world!'
s2='h'
print s2 in s1
输出结果:
(2)不包含运算
s1='hello,world!'
s2='h'
print s2 not in s1
输出结果:
5、转义字符
(1)输出一个单引号
如果我们输出只想输出一个单引号,为了不报错,要用转义字符:
print '\''
输出结果:
不然就会报错
(2)换行符 '\n'
还可以进行换行‘\n’
print 'hello\npython'
输出结果:
(3)制表符tab '\t'
print 'hello\tpython'
输出结果:
相当于多了四个空格
(4)回车符 '\r'
光标到行首,打印'\r'之后的内容
print 'hello\rpython'
输出内容:
(5)输出\n
有以下几种方法:
原始字符串
print r'\n'
输出结果:
或者用大写的R
print R'\n'
输出结果:
6、字符串的格式化输出
print '我叫%s,今天是我第%d天学习python'%('小明',10)
输出结果:
7、字符串的内建函数
(1)查找字符串
s='hello,python'.find('hello')
print s
s='hello,python'.find('e')
print s
s='hello,python'.find('l')
print s
输出结果:
(2)转换为小写字母
print 'Hello Python'.lower()
print 'Hello Python'.upper()
输出结果:
(3)返回字符串长度
len函数返回的自然长度
print len('Hello Python')
输出结果:
空格也要被记入长度中。
(4)判断字符串是否只包含空格
print 'a '.isspace()
print ' '.isspace()
输出结果:
(5)字符串的替换
print 'hello python'.replace('o','ee')
输出结果:
8、python的组类型
list是列表,代表一组数据,是有序的序列
序列中的每个元素分配一个数字,就是索引,也是位置角标,坐标
也是从0开始
list1=[]
print type(list1)
输出结果:
list1=['a','b','c']
print list1
输出结果:
list1=['a',13,'b',11,'c',8]
print list1
输出结果:
9、访问列表
(1)列表的访问
print list1[0]
print list1[2:]
输出结果:
(2)列表的更新操作
list1[1]=14
print list1
输出结果:
(3)列表的添加操作
list1.append('d')
list1.append('20')
print list1
输出结果:
也有第二种方法:直接加上
list1+=['e',26]
print list1
输出结果:
在实际操作中一般都用append()
(4)列表的删除操作
del list1[4]
print list1
输出结果:
但删除操作中就不能像添加操作那样用'-=',会报错。
10、嵌套列表
即:列表当中还有列表
(1)创建嵌套列表
list1=[[],...,[]]
list1=[['a',1],['b',2],['c',3]]
print list1
输出结果:
(2)返回列表元素的个数
count=len(list1)
print count
输出结果:
(3)移除列表中的元素
l=list1.pop(1)
print(l)
print(list1)
输出结果:
(4)对列表中的元素进行排序
list1=[12,11,13]
list1.sort()
print list1
输出结果:
(5)查找列表中第一个匹配的元素的索引值
list1=[12,11,13]
i=list1.index(11)
print i
输出结果:
查找到了11在列表List1中的位置是1
index也可用于字符串中,但是用于字符串的find不能用于列表中
11、list操作练习
#根据地铁站名判断车上还有哪些人
station=raw_input(u'请输入车站名:')
subway_list=['小王','小张']
if station=='天安门东':
subway_list.append('小周')
subway_list.append('小赵')
elif station=='国贸':
subway_list.append('小吴')
subway_list.remove('小王')
elif station=='四惠':
subway_list.append('小贾')
subway_list.remove('小张')
print subway_list
12、元组
元组:在一个小括号里包裹着
元组(tuple)和列表(list)的区别
l=[1,2,3]
t=(1,2,3)
print type(l)
print type(t)
输出结果:
元组不能修改,不能像列表那样用append(),会报错,也不能用'+'。
元组可以像列表那样用索引、切片
13、集合
集合是一个无序的不重复元素的序列
两种声明方法:{}或者set()
set_param={'c','a','b','d','e','d'}
print set_param
输出结果: