文章目录
print函数(输出函数)
文章同步在我的个人博客https://quan9i.github.io/python/,欢迎大家访问
print可以输出数字
代码如下:
print(98)
执行结果
print可以输出字符串
代码;
print('Hello world')
print可以写入文件
代码:
fp=open('D:/python测试/test.txt','a+')//a+的含义是如果该文件不存在,就创建一个并执行下方内容,如果已存在,就在此文件中执行下方代码
print('Hello world',file=fp)
fp.close
执行结果
查看文件夹
点击test.txt查看
已经写入
转义字符
\n
n是缩写,全写为newline,\n的意思为换行
代码:
print('Hello\nworld')
执行结果
\t
t是缩写,全写tab,\t的意思为水平制表符
代码:
print('Hello\tworld')
print('Hellojay\thow are you')
执行结果
可以发现上面空了三个,下面空了四个,这是因为水平换行符以四个为一组。
第一行Hell为一组,然后o加上三个空格为一组
第二行Hello为一组,ojay为一组,这时需要四个空格自己成为一组
/r
/r是缩写,全写为return,/r的意思是覆盖前面内容(回车)
代码:
print('Hellojay\rhow are you')
执行结果
/b
/b为缩写,全写为backspace,/b的意思是退格
代码:
print('hello\bworld')
执行结果
\\
反斜线写两个才能输出一个
代码
print('http:\\taobao.com')
执行结果
如果想输出两个\,则需要输入四个反斜线
\ ’
实现句子中含有单引号,则可以利用\'来输出
代码:
print('老师说:\'大家好\'')
执行结果
\\"
想要输出双引号时可以使用这个
代码:
print('老师说:\"大家好\"')
原字符(r或R)
注意:最后一个字符不能是\ ,但如果后两个都为\,则可以执行
在转义字符前加上r或R可以使其失效
代码:
print(r'老师说:\"大家好\"')
执行结果
二进制与字符编码
chr()函数
将进制数进行转换成字符
ord()函数
将字符转换成数
代码:
print(chr(0b10011100101000))
print(ord('乘'))
20056的二进制数即为10011100101000
变量
变量由三部分组成,标识(id),类型(type),值
代码:
name="沙雕"
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)
执行结果
很多人说与c语言指针地址相似,由于学艺不精,暂不理解,故暂不做解释
变量可进行多次赋值,但赋值后会指向新的那个空间
示例:
name="沙雕"
print(name)
print('标识',id(name))
print('类型',type(name))
name="大沙雕"
print(name)
print('标识',id(name))
print('类型',type(name))
可以发现标识以及name发生了变化,变量名指向了新的空间,前面的那个标识此时不会被再用到,称为内存垃圾,会被python回收机制回收
数据类型
整数类型
int型(integer),可以表示正数,负数和零
注:正数可以是二进制,八进制,十进制或者十六进制,默认是十进制
示例:90 -90 0
q1=90
q2=-90
q3=0
print(q1,type(q1))
print(q2,type(q2))
print(q3,type(q3))
进制数示例
print('十进制',112)
print('二进制' ,0b1001010101)
print('八进制',0o12346)
print('十六进制',0x12acd)
浮点类型
float型,由整数部分和小数部分组成
示例: 1.1,2.2
n1=1.1
n2=2.2
print(n1+n2)
执行结果
此时我们发现结果与预期不符,这是因为部分浮点数进行计算时会存在误差,解决方法是运用decimal函数
示例:
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
布尔类型
bool,即boolean
只有两个值;true false,true为1,false为0
示例:
n1=True
n2=False
print(n1,type(n1))
print(n2,type(n2))
print(n1+1)
print(n2+1)
执行结果
字符串类型
加上单引号,双引号亦或是三引号
示例:
t1='沙,雕'
t2="沙,雕"
t3="""沙,
雕"""
t4='''沙,
雕'''
print(t1,type(t1))
print(t2,type(t2))
print(t3,type(t3))
print(t4,type(t4))
执行结果
注:三引号可以换行输出,而单引号或双引号不行。
str函数、int函数和float函数
str()函数可将其他类型转换成字符串类型
示例:
t1=1;
t2=2.9;
t3=False;
print(t1,t2,t3,type(t1),type(t2),type(t3))
print(str(t1),str(t2),str(t3),type(str(t1)),type(str(t2)),type(str(t3)))
执行结果
int函数,将其他类型转换成整型
示例:
t1='122';
t2=2.9;
t3=False;
print(t1,t2,t3,type(t1),type(t2),type(t3))
print(int(t1),int(t2),int(t3),type(int(t1)),type(int(t2)),type(int(t3)))
注:只能将数字型字符串转换成整型,否则会报错。浮点型转换成整型,抹零取整
float函数
将其他类型转换为单精度浮点型
注:不能转换字符串,转换数字串是可以的。
示例:
t1='122.89';
t2=2;
t3=False;
print(t1,t2,t3,type(t1),type(t2),type(t3))
print(float(t1),float(t2),float(t3),type(float(t1)),type(float(t2)),type(float(t3)))
注释
单行代码 :加#可以作为注释
多行注释:加三引号作为多行注释:如图所示
中文编码声明注释:
input函数
s1=input('今年是几几年')
print(s1,type(s1))
input函数进行加减运算
代码:
a=input('请输入一个加数:')
b=input('请输入另一个加数:')
print(type(a),type(b))
print(a+b)
执行结果
相加时显示1122,而不是33,这是因为input输出的是字符串类型,直接相加就只是把两个字符拼接到一起了,如果想输出正常,则应该转换成整型
代码:
a=input('请输入一个加数:')
b=input('请输入另一个加数:')
print(type(a),type(b))
print(int(a)+int(b))
运算符
算术运算符
示例:
print(1+1) #加法运算
print(10-1) #减法运算
print(2*3) #乘法运算
print(2/4) #除法运算
print(11//2) #整除运算(除法取整)
print(11%2) #取余运算(除法取余)
print(2**3) # 幂运算
print(9//4) #整除运算
print(9//-4) #较难理解的整除运算 ,其实就是负数往下取整
print(9%4) #取余运算 9=4*2+1 ,1即为余数
print(9%-4) #较难理解的取余运算 9=-4*3+(-3).-3即为余数
print(-9%4) #-9=4*(-3)+3,3即为余数
print(-15%4)#-15=4*4+1,1即为余数
答案为
2
9
6
0.5
5
1
8
2
-3
1
-3
3
1
取余的公式是余数=被除数-除数*商,我用的方法在这里。
赋值运算符
执行顺序:从右到左
支持链式赋值:a=b=c=20
解释:20等于c等于b等于a
支持参数赋值
1、+=
2、-=
3、*=
4、/=
5、//=
6、%=
a=20
print(a,type(a))
a-=10
print(a,type(a))
a*=3
print(a,type(a))
a/=2
print(a,type(a))
a//=2
print(a,type(a))
a%=2
print(a,type(a))
运算结果
20 <class 'int'>
10 <class 'int'>
30 <class 'int'>
15.0 <class 'float'>
7.0 <class 'float'>
1.0 <class 'float'>
支持解包赋值
示例:
a,b,c=10,20,30
print(a,b,c)
运算结果
10 20 30
可以通过此来实现交换数值
示例:
a,b=10,20
a,b=b,a
print(a,b)
运算结果为
20 10
比较运算符
比较运算符有 < , > , <= , >= , == , != , in , not in , is , is not 。
示例1:
a,b,c=10,20,30
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)
运算结果
a>b吗? False
a<b吗? True
a<=b吗? True
a>=b吗? False
a!=b吗? True
a==b吗? False
注:在计算机语言中,=为赋值运算符,==为比较运算符,变量由标识(id),类型(type)已经值(value)组成,这里比较的是值(value)
示例2:
a={10,20}
b={10,20}
print(a==b)
print(a is b)
print(a is not b)
print(id(a))
print(id(b))
运算结果
True
False
True
1641728005504
1641728004608
可能这时候有人会疑惑,为什么数组内容一致,但二者的标识却不一样(以下仅为个人观点,如有不当还请多多指教),这是因为对于一个名字不同的数组来说,其id是不一样的,这里的一个变量名是a,一个是b,两个变量名不同,因而具有不同的id,即标识不同。
布尔运算符
and运算符
必须两个结果都正确,才能输出true
示例:
a,b=10,20
print(a==10 and b==20)
print(a==10 and b!=20)
print(a<10 and b==20)
运算结果
True
False
False
or 运算符
两个中有一个是正确,就会输出正确
示例:
a,b=10,20
print(a==10 or b==20)
print(a==10 or b!=20)
print(a<10 or b==20)
运算结果
True
True
True
not运算符
即取反运算符,示例如下:
a,b=True,False
print(not a)
print(not b)
执行结果
False
True
注:这里的true和false首字母需要大写,否则无法识别
in运算符和 not in 运算符
a='hellowwwww'
b='wwadadawd'
print('w' in a)
print('r' in b)
print('r' not in b)
运算结果
True
False
True
位运算符
按位与&
知识小扩充:二进制中默认8个位为一个字节。
对应数位都是1,结果数位才为1,否则为0
示例:
进行4和8的按位与运算,都为1才为1,否则结果为0,如下图所示
得到结果为0
代码输出则如下图所示
按位或|
对应数位都是0,结果数位才为0,否则为1
示例:
输出到代码中则如下图所示
左移位运算符<<
高位溢出舍弃,低位补0
注:高位溢出处是舍弃的,读取数值至高位溢出右边结束
用代码书写则如下图所示
右移位运算符>>
低位溢出舍弃,高位补0
示例:
注:低位截断处是舍弃的,在读取数值时从其左边开始
用代码书写如下图所示:
运算符优先顺序
前三个为算术运算符,挨着的三个为位运算符,再后面的一个是比较运算符,其后两个是布尔运算符,最后一个是赋值运算符
因此常规情况下,优先顺序为:
算术运算符>位运算符>比较运算符>布尔运算符>赋值运算符
为什么说常规,因为但当存在小括号时,优先计算小括号内内容