语法基础
1.输入输出
输出
print(输出内容)
print函数完整语法格式:print(value,...,sep=' ',end='\n',file=None)
输入
变量名=input("这里是提示文字,提醒用户应该输入什么")
num=input('请输入您的幸运数字')
print('您的幸运数字是'+num)#连接成功,num是字符串类型
num=int(num)#用int将其转换为整型
print('您的幸运数字是'+num)#不能正常连接,类型不一样
print('您的幸运数字是',num)#可以运行
2.基本变量及操作符
保留字
标识符
可以是字符,数字,下划线,并且第一个字符不能是数字,不能使用python中的保留字,要严格区分大小写,以下划线开头的标识符具有特殊含义,应该避免使用类似的。
变量
变量名=value
luck_number=8
print('luck_number的数据类型是',type(luck_number))
luck_number='我爱说实话'
print('luck_number的数据类型是',type(luck_number))
#上述例子说明python可以通过给变量赋不同类型的值来改变数据类型
id操作符是取变量的地址的
常量一般都用全大写字母和下划线来表示
整数类型
浮点数类型和复数类型
x=123+456j
print('x的整数部分是',x.real)
print('x的虚数部分是',x.imag)
字符串类型
三引号可以用来输入多行字符串
字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引
比如下面这个例子中s[2]和s[-8]代表的东西是一样的
字符串的切片(截取一段字符串)
切片语法格式:字符串或字符串变量[N:M] 代表从N开始到M,不包括M
常用的字符串操作
布尔类型
数据类型之间的转换
注意:float转换为int类型,只保留整数部分,不会四舍五入
在两个整数做除法时,会自动变成浮点数的结果,不会像C/C++一样只保留整数
eval( )函数
#eval函数经常与input函数一起使用,用来获取用户的数据
age=eval(input('请输入您的年龄'))#相当于int(age)的操作
print(age,type(age))
例子2:第一个可以运行,第二个不能运行
hello='我爱说实话'
print(eval('hello'))
#可以运行,去掉引号的hello代表的是一个字符串变量
print(eval('我爱说实话'))
#不能运行,去掉引号的变量是我爱说实话,未被定义
算数运算符
赋值运算符
支持链式赋值,a=b=c=100这种格式的
Python还支持系列解包赋值 a,b=10,20 即把a的值赋值为10,b的值赋值为20
Python还支持10<=x<20这种写法,这在C/C++中是不成立的
逻辑运算符
3.程序结构
判断结构(单分支,双分支,多分支)
注:使用if语句时,如果要执行的只有一个语句,那么可以将其放在冒号后面
if语句也可以相互嵌套来使用
多个条件可以用and或者or来连接作为判断依据
Python中的match语句(模式匹配,类似于switch-case语句)
score=input("输入成绩等级")
match score:
case 'A':
print('优秀')
case 'B':
print('良好')
循环结构(for,while)
for-else语句中的else后面的部分只有在循环正常结束时才会执行,如果循环遇到非正常情况跳出了,else语句就不会执行
遍历对象可以用range函数,Python中的range()函数可以产生一个[n,m)的整数序列,包含n但是不包含m
循环中也可以使用break和continue
pass是Python中的保留字,相当于空语句,目的是使程序不报错
4.组合数据类型
序列类型
切片操作的语法结构
s = 'helloworld'
s1 = s[0:5:2]
print(s1)
#输出的结果是hlo,从0开始,不包含5,间隔为2
如果省略开始位置,省略结束位置,只有步长,那么会获取合法范围内的按步长的所有元素
如果步长是负数,那么相当于是把字符串进行逆置
由序列引出列表类型,与C/C++中的数组比较类似,指按一定的特定序列排列的元素组成,是Python中内置的可变序列,用[ ]定义,元素和元素之间用逗号分隔。
列表中的元素可以是任意的数据类型
使用enumerate函数要注意,index是序号,不是索引,是可以人为手动修改的
列表的遍历:
lst = ['hello' , 'world' , 'python' , 'php']
#第一种遍历方式
for item in lst:
print(item)
#第二种遍历方式
for i in range(0,len(lst)):
print(i,lst[i])
#第三种遍历方式 enunerate函数
for index,item in enumerate(lst):
print(index,item)
#手动设置序号的值
for index,item in enumerate(lst,start=1):
print(index,item)
列表的相关操作
sort排序是在原列表的基础上产生的,不会产生新的列表对象
而内置函数sorted()则会产生新的列表对象
列表生成式以及二维列表
列表生成式举例
import random
#从1-10
lst=[item for item in range(1 , 11)]
print(lst)
#可以改变item,item*item的值作为列表中的值
lst=[item*item for item in range(1,11)]
print(lst)
#代表从1到100生成10个随机数
lst=[random.randint(1,100) for _ in range(1,10)]
print(lst)
#有选择的将元素放入列表当中
lst=[i for i in range(0,10) if i % 2 == 0]
print(lst)
生成一个二维列表
#生成一个四行五列的列表
#首先遍历行,然后每一行的元素都是列表,因此还要有一个[],列表的每一个元素是j
lst=[[j for j in range(1,6)]for i in range(4)]
print(lst)
元组类型
要特别注意,如果元组中只有一个元素,逗号不能省,这样的类型才会是元组类型
#使用小括号创建元组
t=('hello',[10,20,30],'python','world')
print(t)
#输出结果 hello [10,20,30] python world
#使用内置函数tuple创建元组
t=tuple('helloworld')
print(t)
#输出结果 h,e,l,l,o,w,o,r,l,d
t=tuple([10,20,30,40])
print(t)
#输出结果 10,20,30,40
t=(10,)
print(type(t))
#输出结果 <class 'tuple'>
元组的访问以及遍历与序列类似,直接看序列的部分即可
元组生成式
元组生成式生成的是一个生成器对象,需要先将其转化成元组或者用__next__()来看到里面的元素,但是要注意用__next__()后,相当于元组里面的元素已经被提取出来了,因此如果再想遍历的话,里面是没有元素的。
t=(i for i in range(1,4))
t=tuple(t)
print(t)
t=(i for i in range(1,4))
print(t.__next__())
print(t.__next__())
print(t.__next__())
#也能达到取1,2,3的效果
元组和序列的区别
字典类型
字典类型是根据一个信息查找另一个信息的方式构成了键值对,它表示索引用的键和对应的值构成的成对关系
d={10:'cat',20:'dog',30:'pet',20:'zoo'};
print(d)
#输出结果为{10: 'cat', 20: 'zoo', 30: 'pet'},
# 因为有键值相同的情况出现,会出现覆盖的情况
lst1=[10,20,30,40];
lst2=['cat','dog','pet','zoo','var']
zipobj=zip(lst1,lst2)
print(list(zipobj))
#zip函数生成后的是一个生成器对象,还需要转换才能看到结果
#如果转成列表类型,里面的元素都是元组类型
#[(10, 'cat'), (20, 'dog'), (30, 'pet'), (40, 'zoo')]
d=dict(zipobj)
print(d)
#如果转成字典类型,需要用dict函数
#{10: 'cat', 20: 'dog', 30: 'pet', 40: 'zoo'}
元组同样也可以作为键值!列表不可以作为键值,因为列表是可变数据类型
d[key]如果遇到不存在的元素会直接报错,而d.get(key)会输出一个默认值,或者可以自己设定一个 默认值
d={10:'cat',20:'dog',30:'pet',20:'zoo'};
for item in d.items():#这个输出结果以元组形式
print(item)
for key,value in d.items():#这个输出结果将其拆开来看
print(key,value)
字典的相关操作
d={10:'cat',20:'dog',30:'pet',20:'zoo'};
print(list(d.keys()))
print(tuple(d.values()))
#可以用d.keys()和d.values()来取出元素,但要注意的是
#取出的是dict型,需要转换成列表或元组才能看里面的值
lst=list(d.items())
print(lst)
#将字典中的数据转成key-value的形式,以元组的方式进行展现
d=dict(lst)#再转换会字典
print(d)
字典生成式
集合类型
集合的相关操作
列表,元组,字典,集合的区别