一、条件判断
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']] #二维数组
下面是列表的一些操作:
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中
七、字典
字典是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('你好'+' '+'哈哈')
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') #删除元素