python 类型
变量是用来赋值东西的,存东西的,就是存数据的 为什么叫变量因为他是可变的
举个例子把这个人信息存到数据库需要拿到它
字符串 整数 浮点型 布尔型 常用的输入和输出 input print
string 12 12.2 true false
数据类型:
int str float list
整数 字符串 小数 数组 数据类型干嘛的?也是用来存数据的
整数类型name =18 int
浮点型类型 name=187.5 float
字符串类型 name='小黑' str
所有的编程语言分为两种
一种是编译型语言,一种是解释型语言 、
1.编译型语言,先编译在执行
解释型语言
一边解释一边编译
php python java go
先天上来看,编译型语言快 c c++
python 的单引号,双引号,三引号 ,双引号可以包含单引号 可以定义字符串
age=print(age)这种方法是错误的
Python中input 是输入 print是输出 记住一点input接收到的值都是str类型 字符串类型
python的注释 #单行注释
'''
'''' 三个引号为多行注释
python 的循环
python一共有两种循环
一种是for 循环一种是whlie 循环
#while循环,需要一个计数器
count=0#计数器
rate=140#心率140
while count<10:
if rate>160:
break
print('跑圈', count)
count = count + 1 # 如果不写这句会一直死循环
rate+=5#没跑一圈加5
#break 和continue
# break 在循环里遇到立马停止
# continue 循环一次后,遇到这次结束本次循环,继续 下一次
for 循环
rate=130
for count in range(8):
print('跑圈',count)
if rate>160:
print('xintiao太快')
break
rate+=5
取数据时候 比如取数组的数据
student_info2 = [
[1,'刘海洋','北京' ],
[2,'hzy','北京'],
[3,'ljj','北京']
]
while 循环的方法
student_info2 = [
[1,'刘海洋','北京' ],
[2,'hzy','北京'],
[3,'ljj','北京']
]
# while 循环的方法
count=0
stu=len(student_info2)#取二维数组list长度
while count<stu:
stus=student_info2[count]#取元素
print(stus)
count+=1#循环
原理通过计算下标的方式去循环
如果你想把他插入数据库呢?
知道小list有三个元素,怎么插入的,已拿到了
通过stus[0] stus[1] stus[2]
sql ='insert into student values ({id},"{name}","{addr}");'.format(
# id=stuid,name=name,addr=addr
# )
# print(sql)
最简单的方法取数据 拆包来取三个值 这种方式叫拆包
stuid,name,addr = stu
sql ='insert into student values ({id},"{name}","{addr}");'.format( id=stuid,name=name,addr=addr ) print(sql)
上面的方法如果用for 循环呢?
可以看出for 循环取数据很方便,但是定义死循环就要用while 循环比较方便
for stu in student_info2:
stuid,name,addr = stu
sql ='insert into student values ({id},"{name}","{addr}");'.format(
id=stuid,name=name,addr=addr
)
print(sql)
for i in range(5) range(5) 就是个list 0,1,2,3,4
while 循环和for 循环
ptyhon的格式化三种方法
第一种,简单粗暴用+连接
welcome='董先生'
name='牛逼'
print(welcome+name)
%s 第二种方法占位符方法,占一个位置
name='牛逼'
print("董春光%s"%name)
#多个参数用()其中用,隔开
print("董春光%s,%s"%(name,welcome)
第三种方法 #format
name='测试'
today=20
welecome='{name} 欢迎登录 今天的日期是{today}'.format(name=name,today=today)
print(welecome)
python LIST的操作
定义一个数组 list 也叫列表
a=[] 定义一个数组,里面的数据就存在编号了 里面的数据也叫编号,索引,下标,角标
a=[1,2,3,4,'测试']
#取数据
print(a[1])
#增加,末尾添加
a.append('ss')
#指定位置添加
a.insert(1,'dss')
print(a)
#修改
a[3]='cesces'
#删除方法
a.pop(1)#指定下标删除
a.remove('测试')#指定元素删除
del a[-1]
删除如果下标和指定元素不存在都会报错误提示
list的多维数组的讲解
#多维数组
student_info = [
[1,'刘海洋','北京'],
[2,'hzy','shanghai'],
[3,'ljj','天津']
]#二维数组
student_info2 = [
[1,'刘海洋','北京',['bmw','benz','audi'] ],
[2,'hzy','北京',['bmw','benz','audi']],
[3,'ljj','北京']
] #三维数组
student_info2.remove('北京')
# student_info[0][-1] = '山东'
# student_info2[0][-1].append('tesla')
# student_info2[0].pop(2)
# student_info2[2].append(['wlhg','yfnd'])
# print(student_info2)
list的其余方法
清空list的方法a.clear()
zzcou=a.count('牛逼')统计这个元素出现的次数 ,为了校验某个元素是否存在使用 看看是否大于1
index 方法找到这个元素的下标 print(a.index(xxxx))
extend方法,把两个list合成一个list
a=[1,2,3,4,'测试']
b=[5,6,7,8]
a.extend(b)#方法,把一个列表加入另外一个列表里面
print(a)
reverse(),list的反转方法 目的是让顺序颠倒
a.reverse()
print(a)
排序方法 ,sort()
a=[1,2,3,4,96,94]
a.sort() 从低到高排序,注意排序和reverse()一样不能直接在print里
print(a)
从高到低排序的方法,使用sort()
第一种方法使用reverse()
a=[1,2,3,4,96,94]
a.sort()
a.reverse()
print(a)
第二种方法
a=[1,2,3,4,96,94]
a.sort(reverse=True)
print(a)
LIST的两种方法判断是否在一个list中
a=['cd','dssa',1]
while 1>0:#死循环一直跑
name = input('输入要录制的内容')
if name=='cover':
print('所有学生信息',a)
break
# elif name in a:第一种方法
# print('已经存在了')
elif a.count(name)>0:#第二种方法
print('已经存在')
else:
a.append(name)
print('%s添加成功'%name)
LIST的拆包和len方法的使用
a=[[1,'董春光','北京'],[2,'董春','天津']]
取里面的数据垃圾一点的方法先取到下标,然后根据下标取到元素去循环所有的 ++++
#取list长度
count=0
stu=len(a)#list的长度,里面的个数
while count<stu:#一直去循环直到这个数组全部循环完
st=a[count]#定义一个变量接收列表里面的数据
# print(st)
# aa=st[0]取少个数据的方法
# aaa=st[1]
# aaaa=st[2]
# print(aa,aaa,aaaa)
#拆包方法
aa,aaa,aaaa=st
print(aa,aaa,aaaa)
count=count+1
#学习拆包,数据多的list取多个值
# 原理就说拆开List赋值给多个变量来接收,有几个元素写几个变量来接收,否则会报错
当然我们想要节省代码的话还有一种方法就是for方法
a=[[1,'董春光','北京'],[2,'董春','天津']]
第二种使用for 循环循环得到每个元素
for s in a:
aa,aaa,aaaa=s
print(aa,aaa,aaaa)
布尔类型
只有两个值
True #真
False#假
while 1>0: 条件一直循环,死循环
实战练习
import datetime
#难点判断登录用户名和密码错误时候需要拆分二维数组
#取出key和value然后 取到key的下标和密码的值对比,对了就输入正确
today=datetime.date.today()
users=[['fd','123456'],['xzh','45678']]
user=[]
passds=[]
for i in users:
a=i[0]
b=i[1]
user.append(a)
passds.append(b)
count=0
while count<3:
username=input('输入用户名').strip()
passwdord=input('输入用户密码').strip()
if len(username)==0 or len(passwdord)==0:
print('不能输入为空')
elif username not in user:
print('输入的账号不存在')
else:
index=user.index(username)
pwd=passds[index]
if pwd==passwdord:
print('登录成功,今天的日期是%s'%(today))
break
else:
print('账号密码错误')
list练习
students = ['lhy','hzy','fd']
#录入学生信息,判断学生是否存在,如果已经存在,提示它,然后继续添加,
#直到它输入over,结束
分析
students = ['lhy','hzy','fd']
#录入学生信息,判断学生是否存在,如果已经存在,提示它,然后继续添加,
#直到它输入over,结束
while True: 这就代表死循环 条件一直存在
stu = input('输入学生信息:')
if stu == 'over':
print('所有的学生信息是',students)
break
# elif students.count(stu) > 0:
elif stu in students:
print('学生信息已经存在')
else:
students.append(stu)
print('已经添加%s'%stu)