一、条件判断
python中条件判断使用if else,多条件的话使用if elif ... else。例子如下:
二、输入
python使用input函数接收输入。无论你输入的是什么,input接收的数据类型都是字符串,可以使用tpye()来查看变量的数据类型
score = input(\'请输入你的分数:\')
print(\'score的类型\', type(score)) #type查看一个变量的数据类型
score = int(score) # 数据类型转换
三、循环
循环就是在重复执行循环体里面的代码。
break,在循环里面遇到break,立即结束循环。
continue,结束本次循环,继续进行下一次循环。
while循环:需先定义一个计数器count=0,while循环可对应一个else,作用是:循环正常结束之后会执行else里面的代码。
for循环:不需要计数器,直接for i in range(),循环几次range里就写几。
写一个例子:猜数字大小,最多猜7次。
#while循环
# import random
# number = random.randint(1,100)
# print(number)
# count = 0
# while count<7:
# count = count+1
# guess = input(\'请输入一个数字:\')
# guess = int(guess)
# if guess == number:
# print(\'恭喜你猜对了,游戏结束\')
# break
# elif guess<number:
# print(\'小了\')
# continue
# else:
# print(\'大了\')
# continue
# else:
# print(\'次数用光了\')
for循环
import random
number = random.randint(1,100)
print(number)
count = 0
for i in range(7):
guess = input(\'请输入一个数字:\')
guess = int(guess)
if guess == number:
print(\'恭喜你猜对了,游戏结束\')
break
elif guess<number:
print(\'小了\')
continue
else:
print(\'大了\')
continue
else:
print(\'次数用光了\')
四、字符串格式化
就是将输出的内容用同样的格式展示,有三种格式化的方式:
第一种使用+连接,直接把输出的字符串和变量连接起来就可以了;
name=\'Lucy\'
print(\'欢迎\'+name+\'登陆!\')
第二种是用占位符,占位符有常用的有三种,%s、%d和%f,%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面跟的是小数(用%.*f表示保留几位小数);
import datetime
user=\'tata\'
today = datetime.datetime.today()
age=18
score=96.9
#快速复制一行代码 command+d
msg= \'欢迎 %s 登陆,今天的日期是%s\' %(user,today)
msg2= \'欢迎 %s ,你的年龄是%d , 你的分数是%.1f\' %(user,age,score)
第三种是使用{}和fromat方法
user=\'tata\'
age=18
score=96.9
msg3=\'你的名字是{name},年龄是{nianling}\'.format(name=user,nianling=age)
msg4 = \'你的名字是{},年龄是{}\'.format(user,age)
五、字符串常用的方法
s=\'abd\'
s.count(\'a\') # 统计a在字符串s中出现的次数
s.strip() #默认去掉字符串两边的空格和换行符
s.lstrip() #去左边的空格
s.rstrip() #去右边的空格
s.lower() #把字符串变成小写的
s.upper() #把字符串变成大写的
random.randint(1,100) # 在1-100中随机产生一个整数
random.choice(s) #随机在s中选择一个元素
random.sample(s,2) #在s中随机取2个元素
len(s) #取变量的长度,也就是有几个元素
s.isdigit() #判断是否为数字
s.startswith(\'1\') #判断以xx开头
s.endswith(\'jpg\') #判断以xx结尾
s.center(50,\'*\') #字符串剧中,长度是50用*填充
s=\'5\'
print(s.zfill(3)) #填充补零,即005
s=\'aaaaab\'
s=s.replace(\'a\',\'A\') #替换,即AAAAAb
s=s.replace(\'a\',\'A\',2) #替换,最后的数字表示替换几个,即AAaaab
s=\'red,blue,yellow,green\'
result=s.split(\',\') #以xx来分割字符串(不能传空字符串),即[\'red\', \'blue\', \'yellow\', \'green\']
result=s.split() #什么都不传默认是以空格分割(若传的字符串不存在,则把整个的看出一个list,即[\'red,blue,yellow,green\'])
l=[\'a\',\'b\',\'c\']
s=\'hahaha\'
print(\'\'.join(l)) # 连接字符串,用.前面指定的字符串给连接起来,一般用来连接list。即abc
print(\'-\'.join(s)) #用-连接,即h-a-h-a-h-a(可循环的都可以连接)
六、列表list
列表也叫数组,使用[],列表里可以是任何类型,列表的取值是根据下标取的,下标是从0开始。
list中可以再套列表,叫做二维数组,以此类推。
例:L=[1,2,[\'a\',\'b\']] #二维数组
a的下标就是:L[2][0]
下面是列表的一些操作:
l=[\'周杰伦\',\'王俊卡\',\'黄晓明\'] #一维数组
print(l[-1])# 表示最后一个元素
#查
#list取元素的时候是根据编号取值的
print(l[0])
#增
l.append(\'\') #在末尾增加元素
l.insert(0,\'\') #指定位置增加元素
l.insert(7,\'\') #如果你指定的下标没有,那么就加到最后面
#修改
l[2]=\'赵薇\'
#删除
l.pop() #指定下标删除
l.remove(\'\')#指定元素删除
del l[0] #指定下标删除(同l.pop())
print(l.count(\'赵薇\')) #查找某个元素出现的次数
index = l.index(\'王源\')#找某个元素的下标,如果找一个不存在的元素会报错
l.reverse() #反转list
l.sort() #排序(默认升序)
l.sort(reverse=True) #降序
l.clear() #清空list
#列表相加
l3= l+l2 #直接相加就是把两个list合并成一个新list
l.extend(l2) #把l2里面的元素加到l中
List循环
#for循环直接循环list就是取的list里面的每一个元素(取出后可以将数据存到数据库或者文件里)
students=[\'aa\',\'bb\',\'cc\']
for i in students:
print(i)
if \'aa\' in students: #判断某元素在不在list里,用in
print(\'存在\')
elif \'aa\' not in students:#判断某元素不在list里,用not in
print(\'不存在\')
#其它语言是通过计算下标方式实现的(以下)
for i in range(len(students)): #0,1,2 这是通过计算下标的方式取出,其余语言是通过这种计算下标方式实现的
print(students[i])
七、字典
字典是key-values的形式。{key:value}
字典的特性:
字典是无序的,它没有下标,用key来当索引。
字典的key是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
字典的一些操作:
d= {
\'name\':\'zhaomin\',
\'idcard\':\'123456\',
\'sex\':\'1\',
\'addr\':\'北京\'
}
#取值
print(d[\'money\']) # 取值不存在时会报错
print(d.get(\'money\')) #取值不存在时返回None(不存在时可以给传一个值,例:d.get(\'money\',100))
#增加key
d[\'addr\']=110 #如果key存在,会更改原有的值
d.setdefault(\'addr\',\'bmw\') #如果key已存在,不会更改原有的值
#修改
d[\'sex\']=\'女\'
#删除
d.pop(\'sex\') #删除指定的key,会返回删除的值,(result=d.pop(\'sex\'))
del d[\'sex\'] #删除指定的key
d.clear()#清空字典
print(d.keys()) #字典里所有的key放到一个list中
print(d.values()) #字典里所有的values放到一个list中
#循环字典
s = {"id": 315,"name": "矿泉水"}
for k in s: #直接循环字典,每次取的是字典的Key,再根据key取value值
#value=d.get(k)
#print(k,value)
print(k,s[k]) #以上两步等同于这一步
#if \'id\' in s : #如果字典用in来判断的话,它判断的是key存在不存在八、切片
list[-1] #-1表示最后一个元素,即7
list[0:3] #取下标是0-3的元素,包括0,但不包括3,顾头不顾尾,即1、2、3
list[:3] #同上,表示从最前面开始,0可以不写
list[2:] #表示取从下标2到最后一个元素,即3、4、5、6、7
list[:] #取全部元素
#以下是带步长的
list[0:7:2] #从第一个元素开始隔2个取一个,隔的包括自己,结果是:1,3,5,7
list[::-1] #步长为负数,是从后往前取,如果不是取全部的元素,下标也要用负数,
l2=(1,2,3,4) #元祖,元祖里的数据不可以修改
s3=(\'abc\',) #只有一个元素的时候不是元祖,需加一个,才表示元祖
print(type(s3)) #使用type可查看元素的类型
可变数据类型
list 、dict
不可修改数据类型
tuple、str、float、int
import copy
l=[1,2,3]
l2=copy.deepcopy(l) #只有这一种才是深拷贝,深拷贝内存地址变,修改元素彼此不会受影响
# l2 = l #浅拷贝,内存地址不变
# l2=l.copy() #浅拷贝,内存地址变。当是二维数组时改二维数组里的元素会受影响,改一维数组里的元素不会受影响
# l2=l[:] #浅拷贝,同上
# copy.copy(l) #浅拷贝,同上
print(\'l的内存地址\',id(l)) #查看内存地址用id
print(\'l2的内存地址\', id(l2))
十一、 文件读写
基本操作:
f= open(\'a.txt\',encoding=\'utf-8\') #打开文件,有汉字要加utf-8(写文件路径时加个r防止被转译,例如r\'c:\user)
result = f.read() #读文件
print(result)
f.close() #关闭文件
f=open(\'a.txt\',\'w\',encoding=\'utf-8\') #写文件,写会覆盖原有文件
f.write(\'你好\'+\'\n\'+\'哈哈\')
f.close()
十二、集合
集合的作用:
1. 集合天生去重,自动去掉重复的元素
2.可以用来做关系测试
集合是无序的,不能用下标取值
要想定义一个空集合则用set()
#关系测试例子
a={1,2,3}
b={3,4,5}
#取交集
print(a&b)
print(a.intersection(b))
#取并集
print(a.union(b))
print(a|b)
基本操作
a.add(\'56\') #增加元素,集合中不能增加重复的元素
a.remove(\'1\') #删除元素