输出用法(带格式)
wea='很热'
hah='嘿嘿'
temp=30
print('天气:%s'%wea)
print('温度是:%d度'%temp)
print('今天的天气%s,温度是%d度'%(wea,temp))
print('天气{},温度是{}'.format(wea,temp))
更改结束符
print(wea,end='')#''里面可以写自己想要结束的符号
print(temp)
输入
切记:一切皆字符串
salary=input("请输入你的月薪")
print('你的月薪是%s元'%salary)
sal=int(salary)
print('你的月薪是%d元'%sal)
tel=input('请输入你的电话:')
leng=len(tel)
print('你的电话为:%s,长度为%d'%(tel,leng))
生成随机数
import random
#random.randint(min,max)#两边都是闭区间
#随机生成1-100的数
r1=random.randint(1,100)
print('生成的随机数为{}'.format(r1))
小练习
n=random.randint(1,3)
names=['zhansan','njdk','njk']#列表的元素是有序的
print('点到的人是:{}'.format(names[n-1]))
基本数据类型(变量没有类型,但是数据是有类型的)
1、数值型:int float boolean
a
a=True
a
a=1.5
a
2、字符串:单个字符 多个字符
a='x'
a
a='zzy'
a
3、列表(有序,可通过下标索引,可重复的,可变的)
a=[1,2,3,'fev']
a
4、元组(有序、可重复、不可变(坑位不可变,但是里面的数据可以变))
a=(1,3,'vf','v')
a
5、集合(无序、不可重复)
集合只能有一个参数,里面可以使列表,可以使元组,可以是集合
a=set([1,1,2,3,'cs'])
a
6、字典(key-value)
a={'a':1,'b':2}
a
数据类型转换
1、数值型
将一个整数转换为其他进制
num=5
#讲一个整数转换为二进制
n1=bin(num)
n1
#八进制
n2=oct(num)
n2
#十六进制
n3=hex(num)
n3
将其他进制转换为十进制,语法格式如下
int(‘进制转换字符串’,进制)或者
int(具体的进制数)
```python
n1=int('0b101',2)
print(n1)
n2=int('0x5',16)
print(n2)
n1=int(0b101)
print(n1)
n2=int(0x5)
print(n2)
2、浮点数
number=1234.6789
print(number)
print('小数为:%f'%number)
print('小数为:%.2f'%number)
print('{0:.2f}'.format(num))
3、布尔型
a=1
a==True
a==False
4、字符串
unicode
ord('a')
ord('A')
chr(65)
编码与解码
encode()—>编码–>字符列表到字节列表
decode()–>解码–>字节列表到字符列表
ascii码不支持汉字
utf-8支持
s1='cdvf'
print(s1.encode('utf-8'))
b'cdvf'.decode()
运算符
算术运算符、赋值运算符、复合运算符、比较运算符、逻辑运算符、位运算符、
身份运算符 is is not
成员运算符in not in
需要注意的点有:
+号不仅有数值加的作用,还有连接符的作用
‘a’+‘b’
*不仅有乘法的作用,还有重复的作用
‘-’*30
/是除法,//是整除
比较运算符的结果都是True或者False
a=2
b=1
print(a>b and b<3)#注意短路问题
身份运算符和成员运算符(返回True或False)
is is not 比较的是地址
==比较的是内容
a='tec'
b='dew'
a is b
c='tec'
a is c
a is not b
a=[1,2,3]
b=[1,2,3]
print(a is b)#输出为什么是False,是因为像这种比较复杂的类型的地址都是不一样的,只是看上去一样
a=[1,2,3]
1 in a
控制语句
1、单选择
if 布尔表达式:
代码1
代码2
hour=random.randint(1,24)
if hour==7:
print('eat')
print('school')
2、双选择
if 布尔表达式:
code1
code2
else:
code3
code4
hour=random.randint(1,24)
if hour==7:
print('eat')
else:
print('起迟了')
print('school')
3、多选择
if 布尔表达式1:
语句块1
elif 布尔表达式2:
code2
elif 布尔表达式3:
code3
else:
coden
m=random.randint(1,12)
if m//3==1:
print('spring')
elif m//3==2:
print('summer')
elif m//3==3:
print('autumn')
else:
print('winter')
#猜大小游戏
r=random.randint(1,100)
n=int(input('输入您要输入的数字'))
while(n!=r):
if(n>r):
print('输入的数字过大,请再次输入!')
n=int(input('输入您要输入的数字'))
else:
print('输入的数字过小,请再次输入!')
n=int(input('输入您要输入的数字'))
if(n==r):
print('恭喜你,答对了,猜的数字是{}'.format(r))
循环控制
while
num=0
while num<5:
print('hrllo olrd{}'.format(num))
num+=1
break是终止
continue是暂停本次,不执行后面代码
for
for i in range(1,11,1):#range是左闭右开,步长默认为1,
print('{}'.format(i))
for i in range(10,0,-1):
print('{}'.format(i))
模拟用户登录小练习
#声明用户名和密码
#用户输入用户和密码,三次机会
username='zhao'
password='123'
i=1
while(i<=3):
u=input('请输入用户名')
p=input('请输入密码')
if(username==u and password==p):
print('登陆成功!')
break
else:
print('登录失败,您还有{}次机会'.format(3-i))
t=3-i
i+=1
if(t==0):
print('登录失败')
容器
一、List列表
可以存储多个元素,有序(下标,索引,位置)可重复可变
①、构建
字面值
l1=[1,2,3,'wcs','ce',True]
l1
构造函数
l2=list((1,2,3))#这种方法可以将元组转变为列表
print(l2)
l3=list(range(1,11))
print(l3)
脚本操作符
l4=[1,2,3]+[4,5,6]
print(l4)
l5=[1,2,3]*5
print(l5)
②、获取元素
l1=[1,2,3,'wcs','ce',True]
print(l1[1])
print(l1[-1])
③、长度
print(len(l1))
④、修改
l1[2]='vcdbsx'
print(l1)
⑤、分片
[1:5]---->[1,5)的元素
[0:]或[:]----->所有的元素
[0::2]----->所有偶数索引的元素
[:2]---->前两个元素
[-1]---->最后一个元素
[-2]--->倒数第二个元素
print(l1[0:3])
print(l1[:])
print(l1[-2])
print(l1[0::2])
print(l1[-1:-5:-1])
⑥、抽取赋值
l1[1:3:1]=['aaa']#会将索引为3 的丢弃掉(不匹配)
print(l1)
l1[1:3:1]=['aaa','bbb']#匹配就会正确替换
print(l1)
l1[2:4:1]=['aaa','bbb','ccc']#连续空间超出一个会追加,不连续空间会报错
print(l1)
⑦、常见方法
可以用help(list)查看api
二、tuple元组
可以存储多个元素,有序(下标,索引,位置),可重复,坑位不可变,但是内容可变
构造的方法和列表一样,只需把[]换成()即可。
获取元素也一样
但是他不能修改,例如li[3]='cbh’是错误的,会报错。
分片也一样
没有抽取赋值
常用方法中关于增加的、删除的(但可以用del)、清空的函数全部也没有
三、dict字典
键值对(key-value),key要求唯一,不可变(所以key不能用列表)。重复的话,第二个会把第一个覆盖
①构建
#字面值
d1={'a':1,'sex':'女','address':'beijing'}
print(d1)
#构造函数(使用构造函数就不能用:,要用,)
d2=dict([('xw',1),('xwc',2),('fr',3)])
print(d2)
#还可以用等号
d3=dict(name='cd',age='2')
print(d3)
②、常见方法
d3['a']=3 #这种用法可以增加元素,可以修改元素
print(d3)
d1={}.fromkeys(['a','b','c'],[1,2,3])#给前面的每一个key值都赋予列表[1,2,3]
print(d1)
del d1['a']
d1.popitem() #随机删除item
只列出了部分,具体的话可以help(dict)来查看
小练习:统计单词次数
#用户输入英文短句
msg=input('请输入一句英文短句')
#准备工作
msg_list=msg.split()#默认空格分隔
#循环处理
dict_count={}
for m in msg_list:
#放入字典中
if m not in dict_count:
dict_count[m]=1
else:
dict_count[m]+=1
#print(dict_count)
code=input('请输入要查询的单词')
print('{}单词出现的次数为{}'.format(code,dict_count.get(code,0)))#get函数能保证即使不存在也不会报错
四、set集合
天生自带去重
①、构建
字面值
构造函数
s=set([1,2,3,'cd',True])#元组、列表、字典都可以往里面丢
s
s=set({'name':'zz','age':18})#只会保留key,会丢弃value
s
#字面值构建
s={1,2,3,2,1,'cd','cdfv'}
s
print(type(s))
②、数学相关
交集
并集
差集
对称差集
这些都不太常用,用到查询即可
③、常用方法
help(set)
下周开始看深浅拷贝,这周到这里吧!