声明:
(1)该学习笔记是根据B站“Python_子木”分享的杨淑娟老师授课的“马士兵Python入门基础版”所整理的。该系列笔记适合初学Python的同学,仅供学习交流。
(2)博主是零基础的Python初学者,撰写笔记是为了更好复盘所学内容。如有错误还望大佬们多多指点,不胜感激!
目录
一、Python中常见的数据类型
1. 整数类型
英文为integer,简写为int,可以表示正数、负数和零。
整数的不同进制表示方式:十进制——默认的进制、二进制——以0b开头、八进制——以0o开头、十六进制——以0x开头。
n1=90
n2=-76
n3=0
print(n1,type(n1))
print(n2,type(n2))
print(n3,type(n3))
#整数可以表示为十进制、二进制、八进制、十六进制
print('十进制',118)
print('二进制',0b0011100011)#二进制以0b开头
print('八进制',0o157)#八进制以0b开头
print('十六进制',0x1EAF)#十六进制以0x开头
2. 浮点类型
浮点数float由整数部分和小数部分组成。浮点数的存储具有不精确性。使用浮点数进行计算时,可能会出现小数点位数不确定的情况。当存在误差时需要导入模块Decimal进行矫型。注意需要Decimal首字母大写以及数据加引号。
n1=1.1
n2=2.2
n3=2.1
print(n1+n2)
print(n1+n3)
#导入decimal模块
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
3.布尔类型
布尔boolean简称bool,用以表示真或假的值。True表示真,False表示假。布尔值可以转换为整数,True——1、False——0
f1=True
f2=False
print(f1,type(f1))
print(f2,type(f2))
#布尔值可以转成整数计算
print(f1+1)
print(f2+1)
4. 字符串类型
字符串又被称为不可变的字符序列,可以使用单引号‘’、双引号'' ''、三引号''' '''或'''' ''''来定义。单引号和双引号定义的字符串必须在一行,三引号定义的字符串可以分布在连续的多行。
str1='人生苦短,我用python'
str2="人生苦短,我用python"
str3='''人生苦短,
我用python'''
str4="""人生苦短,
我用python"""
print(str1,type(str1))
print(str2,type(str2))
print(str3,type(str3))
print(str4,type(str4))
二、数据类型转换
为什么需要数据类型转换?——将不同数据类型的数据拼接在一起。
函数名 | 作用 | 注意事项 | 举例 |
str() | 将其他数据类型转成字符串 | 也可以用引号转换 | str(123)‘123’ |
int() | 将其他数据类型转成整数 | (1)文字类和小数字类字符串无法转成整数; (2)浮点数转化成整数要抹零取整 |
int('123') int(9.8) |
float() | 将其他数据类型转成浮点数 | (1)文字类无法转成整数; (2)整数转成浮点数末尾为.0 |
float('9.9') float(9) |
#转换成str类型
a=10
b=198.8
c=False
print(type(a),type(b),type(c))
print(str(a),str(b),str(c),type(str(a)),type(str(b)),type(str(c)))
#转换成int类型
s1='128'
f1=98.7
s2='76.77'
ff=True
s3='hello'
print(type(s1),type(f1),type(s2),type(ff),type(s3))
print(int(s1),type(int(s1)))
print(int(f1),type(int(f1)))
#print(int(s2),type(int(s2))) 文字类和小数类字符串不能转换为整数
print(int(ff),type(int(ff)))
#print(int(s3),type(int(s3)))
#转换成float类型
s1='128.8'
s2='76'
ff=True
s3='hello'
i=98
print(type(s1),type(s2),type(ff),type(s3),type(i))
print(float(s1),type(float(s1)))
print(float(s2),type(float(s2)))
print(float(ff),type(float(ff)))
#print(float(s3),type(float(s3))) 字符串中的数据如果是非数字串,则不能转换成float类型
print(float(i),type(float(i)))
三、输入函数input()
作用:接收来自用户的输入;
返回值类型:输入类型为str;
值的存储:适应“=”对输入值进行存储。
1. input函数的基本使用
present=input('请输入愿望清单:')
print(present,type(present))
present是变量。“=”是赋值运算符,将输入函数的结果赋值给变量present。input()函数是一个输入函数,需要输入回答。
2. input函数的高级使用
#从用户处录入两个整数,计算两个整数的和
a=int(input('请输入一个整数:'))
b=int(input('请输入另一个整数:'))
print(type(a),type(b))
print(a+b)
若不将数据类型转换为整数类型,会发现a+b的运算是起了一个连接作用,这是因为原本的数据类型为str类型,无法进行运算。
四、Python中的运算符
常用运算符:算术运算符(包含标准算数运算符、取余运算符、幂运算符)、赋值运算符、比较运算符、布尔运算符、位运算符
1. 算术运算符
(1)标准运算符:加+、减-、乘*、除/、整除//;
(2)取余运算符:%
(3)幂运算符:**
算式中出现一正一负的情况:取余时遇到一正一负需要用到余数=被除数-除数*商,整除时遇到一正一负向下取整。
print(1+1)
print(2-1)
print(2*3)
print(6/3)
print(11//2)
print(11%2)
print(2**3)
#算式中一正一负的情况
print(9//4)
print(9//-4)
print(-9//4)
print(9%-4)#余数=被除数-除数/商,9-(-4)*(-3)=-3
print(-9%4)#-9-4*(-3)=3
2. 赋值运算符
(1)执行顺序:从右到左;
(2)支持链式赋值(同一个对象赋值给多个对象):a=b=c=20;
(3)支持参数赋值:+=、-=、*=、/=、//=、%=;
(4)支持解包赋值:a,b,c=20,30,40。
#链式赋值
a=b=c=20
print(a,id(a))
print(b,id(b))
print(c,id(c))
#参数赋值
a=20
a+=30 #a=a+20
print(a)
a-=10 #a=a-10
print(a)
a*=2 #a=a*2
print(a)
print(type(a))
a/=3 #a=a/3
print(a)
print(type(a))
a//=2 #a=a//2
print(a)
a%=3 #a=a%3
print(a)
#系列解包赋值
a,b,c=20,30,40
print(a,b,c)
3. 比较运算符
比较运算符是指对变量或表达式的结果进行大小、真假等比较,其结果是布尔类型(True/False)。
(1)>,<,>=,<=,!=;
(2)==(对象value的比较);
(3)is, not is(对象id的比较)。
a,b=10,20
print('a>b?',a>b)
print('a<b?',a<b)
print('a<=b?',a<=b)
print('a>=b?',a>=b)
print('a不等于b?',a!=b)
print('a与b的值相等吗?',a==b)
print('a和b的id相等吗?',a is b)
print('a和b的id不相等吗?',a is not b)
4. 布尔运算符
布尔运算:and、or、not、in、not in,是对于布尔值之间的运算。
(1)and(并且):两真才真,一假就假;
(2)or(或者):两假才加,一真就真;
(3)not(对运算数取反):一真就假,一假则真,真假相对;
(4)in(在这个当中)与not in(不在这个当中)。
a,b=1,2
#and并且,两真才真,一假就假
print(a==1 and b==2)
print(a!=1 and b==2)
print(a==1 and b!=2)
print(a!=1 and b!=2)
#or或者,两假才真,一真就真
print(a==1 or b==2)
print(a!=1 or b==2)
print(a==1 or b!=2)
print(a!=1 or b!=2)
#not对运算数取反
f=True
f1=False
print(not f)
print(not f1)
5. 位运算符
位运算是将数据转成二进制的运算。
(1)位与&:对应数位都是1,结果数位才是1,否则为0;
(2)位或|:对应数位都是0,结果数位才是0,否则为1;
(3)左移位运算符<<:高位溢出舍弃,低位补0;
(4)右移位运算符>>:低位溢出舍弃,高位补0。
#位与&,同为1时结果为1,其余为0,十进制转换为二进制上来对比
print(4&8)
#位或|,同为0时,结果为0,其余为1
print(4|8)
#左移位运算符,高位溢出舍弃,低位补0
print(4<<1) #左移一位相当于每乘2
print(4<<2)
#右移位运算符,低位溢出舍弃,高位补0
print(4>>1) #右移一位相当于每除2
print(4>>2)
6. 运算符的优先级
第一优先——算术运算:(1)**(2)*,/,//,%(3)+,-;
第二优先——位运算:(1)<<,>>(2)&(3)|;
第三优先——比较运算:(1)>,<,>=,<=,==,!=;
第四优先——布尔运算:(1)and(2)or;
第五优先——赋值运算:=