提示:对之前博客的修正和补充。
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
python语言既简单又好用,现在很多方面有Python的应用,学好python相当于有了另一把钥匙。
提示:以下是本篇文章正文内容,下面案例可供参考
一、输出函数print
1、print()函数可以输出哪些内容:
数字
print(520)
print(96.6)
字符串
print('helloworld')
#注意字符串是要加引号(''或者"")的
#print(helloworld)就是错的
含有运算符的表达式
print(2+1)
2、将数据输出到文件中
fp=open('D:/opentxt.txt','a+')
#上面的D:/opentxt.txt是我们要把数据给输出到的文件
#a+是指以读写的方式打开文件,如果文件不存在就创建文件,如果存在就在文件内容原有的情况下继续追加
print('helloworld',file=fp)
fp.close()
#要注意所指定的盘符要存在,而且要使用file=fp(注意这里的fp可以自定义)
3、数据的换行、不换行输出
换行
print('helloworld')
print('you are a cutie')
不换行
print('hello','world','you are a cutie')
二、转义字符与原字符
1、什么是转义字符
就是反斜杠+想要实现的转义功能首字母。
2、为什么需要转义字符
当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义(转换一种含义)
反斜杠 \\
print('http:\\www.baidu.com')
#输出结果为
#http:\\www.baidu.com
#也就是\\表示\
#如果要输出http:\\www.baidu.com,就需要下面这样
print('http:\\\\www.baidu.com')
单引号 \'
print('Mother said, 'it's time to eat!'')
#会报错
print('Mother said, \'it\'s time to eat!\'')
#输出结果为 Mother said, 'it's time to eat!'
双引号\"
print('Mother said, "it's time to eat!"')
#会报错
print('Mother said, \"it\'s time to eat!\"')
#输出结果为 Mother said, "it's time to eat!"
当字符串中包含换行、回车、水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符对字符串中这些无法直接表示的特殊字符进行表示。
换行 \n
print('hello\nworld')
#输出结果为
#hello
#world
#\ + 转义功能的首字母
#n:newline的首字母表示换行
回车 \r
print('hello\rworld')
#输出结果为
#world
#这里相当于一个回车把hello给覆盖掉了
水平制表符 \t
print('hello\tworld')
print('helloooo\tworld')
#我们可以看到输出结果如下
#hello world(这两者之间是三个空格)
#helloooo world(这两者之间是三个空格)
#为什么会出现这种情况呢?
#首先我们要知道四个字符一个制表位,所以hell是一个制表位,o就和后面的三个空格是一个制表位
#其次helloooo是两组四个字符,所以\t要重开一个制表位,就是四个空字符了
退格 \b
print('hello\bworld')
#输出结果为
#hellworld
#这里的\b相当于backspace,退了一个格
3、原字符
不希望字符串中的转义字符起作用,就使用原字符,就是在字符串之前加上r或者R。
print(r'hello\nworld')
#输出结果为 hello\nworld
#注意哈,最后一个字符不能是反斜线 ,但是可以是两个反斜线
print(r'hello\nworld\')
print(r'hello\nworld\\')
三、python中的标识符和保留字
1、保留字:当我们给自己的任何对象起名字的时候,都不能用保留字(具有特殊意义)
那么保留字都有哪些?我们可以通过下面代码实现:
import keyword
print(keyword.kwlist)
#输出结果如下(以下全部的保留字):
#['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def',
# 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
# 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
2、标识符:变量、函数、类、模块和其他对象的起的名字
规则:
字母、数字、下划线
不能以数字开头
不能是保留字
要严格区分大小写
四、变量的定义和使用
1、变量定义
变量是内存中一个带标签的盒子,把需要的数据存进去。
name='小可爱'
#name是变量名 =是赋值运算符 '小可爱'是值
print(name)
由上面可以看出,变量有三部分组成:
标识:表示对象所存储的内存地址,使用内置函数
id(obj)
来获取类型:表示的是对象的数据类型,使用内置函数
type(obj)
来获取值:表示对象所存储的具体数据,使用
print(obj)
可以将值进行打印输出
name = '小可爱'
print('id:', id(name))
print('type:', type(name))
print('name:', name)
#运行结果为
#id:2020085657072
#type:<class 'str'>
#name:小可爱
1.1、python中常见的数据类型
整数类型:int 98
浮点数类型:float 3.14926
布尔类型:bool True、False
字符串类型:str ' 小可爱,你真是个小天使~'
1.1.1、整数类型
英文为integer,简写为int,可以表示正数、负数、零。
整数的不同进制表示方式:
十进制:默认的进制 表示形式:1375
二进制:以0b开头 表示形式:0b01000101110
八进制:以0o开头 表示形式:0o1543534
十六进制:以0x开头 表示形式:0x5654365A45C
我们可以运行代码看一下:
n1 = 90
n2 = -64
n3 = 0
print(n1, type(n1))
print(n2, type(n2))
print(n3, type(n3))
#运行结果:
#90 <class 'int'>
#-64 <class 'int'>
#0 <class 'int'>
1.1.2、浮点数类型
浮点数由整数部分和小数部分组成,并且浮点数储存具有不精确性。
1、使用浮点数进行计算时,可能会出现小数位不确定的情况
print(1.1+1.2)
print(1.1+2.2)
#运行结果:
#2.3
#3.3000000000000003
2、解决方案:导入模块decimal
from decimal import Decimal
print(Decimal('1.1') + Decimal('2.2'))
#运行结果:
#3.3
1.1.3、布尔类型
用来表示真或假的值,Ture表示真(1),False表示假(0)
print(True+1)
print(False+1)
#运行结果:
#2
#1
1.1.4、字符串类型
字符串又被称为不可变的字符序列,可以使用单引号、双引号、三引号来定义,并且单引号和双引号定义的字符串必须在一行,三引号定义的字符串可以分布在连续的多行。
str1 = 'you are a cutie~'
str2 = "you are a cutie~"
str3 = '''you are
a cutie~'''
str4 = """you are a cutie~"""
print(str1)
print(str2)
print(str3)
print(str4)
#运行结果
#you are a cutie~
#you are a cutie~
#you are
#a cutie~
#you are a cutie~
1.2、数据类型转换
为什么我们需要数据类型转化呢?将不同数据类型拼接在一起。
1.2.1、str()和int()转换
首先我们看下面的代码,试着运行一下,可以发现编译器会报错。报错的主要原因是can only concatenate str (not "int") to str
(只能将str(而不是“int”)连接到str)。
name = '你多少岁啦?'
age = 14651
print(type(name), type(age))
print(name + age + '岁喔~')
#+这里是连接符
#当将str类型和int类型进行连接时,报错,解决方案就是类型转换
所以下面我们需要把int类型转换为str。
name = '你多少岁啦?'
age = 14651
print(type(name), type(age))
print(name + str(age) + '岁喔~')
#运行结果:
#<class 'str'> <class 'int'>
#你多少岁啦?14651岁喔~
这里我们可以从例子里面延伸出,知道类型转换格式:
str(obj)
int(onj)
#这里需要注意的是文字类和小数类字符串,无法转换成整数,并且浮点数转化为整数,抹零取整
1.2.2、float()转换
float将其他数据类型转成浮点数,需要注意文字类无法转成整数,并且整数转成浮点数后面会加.0
。
s1 = '128.87'
s2 = '76'
s3 = True
s4 = 'hello'
s5 = 546
print(type(s1), type(s2), type(s3), type(s4))
print(float(s1))
print(float(s2))
print(float(s3))
print(float(s5))
#运行结果:
#<class 'str'> <class 'str'> <class 'bool'> <class 'str'>
#128.87
#76.0
#1.0
#546.0
#这里没有打印float(s4),是因为会报错could not convert string to float: 'hello'
#(无法将字符串转换为浮动:“Hello”),这里需要注意
2、变量的多次赋值
当多次赋值之后,变量名会指向新的空间。
name = '小可爱'
print('id:', id(name))
print('type:', type(name))
print('name:', name)
name = '小天使'
print('id:', id(name))
print('type:', type(name))
print('name:', name)
#运行结果如下:
#id: 2151672835568
#type: <class 'str'>
#name: 小可爱
#id: 2151677122032
#type: <class 'str'>
#name: 小天使
五、python里面的注释
注释就是在代码里对代码的功能进行解释说明的标志性文字,注释内容会被python解释器忽略,可以提高代码的可读性。
通常注释有三种类型:
1、单行注释——以“#”开头,直到换行结束。
#单行注释
2、多行注释——并没有单独的多行注释标记,将一对三引号之间的代码称为多行注释。
'''芜湖~
多行
注释~'''
3、中文编码声明注释——在文件开头加上中文声明注释,用以指定源码文件的编码格式。(我们要知道python文件的默认编码是UTF-8
,当然我们也可以更改,在我们编写的Python文件第一行加上#coding:ghk
,编码就成了ANSI)
#coding:ghk
表示编码ANSI
#coding:UTF-8
表示编码UTF-8
六、python的输入函数input()
1、input()函数基本含义
1.1、input()作用
接受来自用户的输入。
1.2、input()返回值类型
输入值的类型为str。
1.3、值的储存
使用=对输入的值进行存储。
2、input()函数的基本使用
present = input('你是小可爱嘛?')
#present是指变量
#=是赋值运算符,将输入函数的结果赋值给变量present
#input()函数是一个输入函数,需要输入回答
print(present,type(present))
3、input()函数的高级使用
首先我们先看下面的这个例子,自己运行一下会发现,结果不是我们想到的那样的,这是因为input()输入的值是str类型。
n1 = input('请输入第一个数')
n2 = input('请输入第二个数')
print(n1+n2)
#运行结果为:
#请输入第一个数24
#请输入第二个数12
#2412
那么怎么解决这个嘞?我们可以想到前面的类型转换,给它转换成int()
类型。
n1 = input('请输入第一个数')
n2 = input('请输入第二个数')
print(int(n1)+int(n2))
#另一种方法:
n1 = int(input('请输入第一个数'))
n2 = int(input('请输入第二个数'))
print(n1 + n2)
#当然也不仅限于这两种
#运行结果为:
#请输入第一个数24
#请输入第二个数21
#45
#这样就解决啦~
七、python中的运算符
1、算术运算符
1.1、标准运算符——加(+)、减(-)、乘(*)、除(/)、整除(//)
加(+):
print(1+2)
减(-):
print(3-1)
乘(*):
print(3*1)
除(/):
print(3/2)
#结果为:1.5
整除(//):
print(3//2)
#这里整除指的是只取整数位,就像这个结果为 5
#那么如果是负数呢
print(9//-4)
#遵循一正一负向下取整
#所以这个结果是 -3
1.2、取余运算符——%
print(11%2)
#这里指整除后的余数,就像这个运行结果为 1
#还有另一种情况,指出现负数的情况
print(9%-4)
#这个时候我们需要知道余数=被除数-除数*商 而且我们知道商是指整除结果
#所以9%-4相当于9-(-4)*(-3)
#这个结果为 -3
print(9%-4)
#这个结果为 3
1.3、幂运算符——**
print(2**5)
#表示2的5次方
2、赋值运算符
赋值运算符执行顺序:右到左,并且支持链式赋值(a=b=c=20
)、参数赋值(+=,-=,*=,/=,//=,%=
),支持系列解包赋值(a,b,c=10,30,40
)。
3、比较运算符
对变量或表达式的结果进行大小、真假等比较。
比较运算符有>,<,<=,>=,!=
,==
(对象value的比较),is,is not
(对象id的比较)。
4、布尔运算符
布尔运算符是对于布尔值之间的运算,有and,or,not,in,not in
。
布尔运算符and,or,not
部分遵循或与非的运算规则。就像对于and而言,两边为真,表达式才为真,or是一边为真,表达式就为真。
in和not in与上面不同,我们看看下面代码,以及运行结果:
str = 'you are a cutie'
print('a' in str)
#运行结果为
#True
#in 表示前面的字符或是字符串是否在in后面的字符串里面
#同理
#not in 表示前面的字符或是字符串是否不在in后面的字符串里面
5、位运算符
将数据转成二进制进行运算。
- 位与&:对应数位都是1,结果数位才是1,否则为0。
- 位与&:对应数位都是0,结果数位才是0,否则为1。
- 左移位运算符<<:高位溢出舍弃,低位补0。
- 右移位运算符>>:低位溢出舍弃,高位补0。
6、运算符的优先级
算术运算符(**
高于*,/,//,%
高于+,-
)高于位运算符,位运算符(<<,>>
高于&
高于|
)高于比较运算符,比较运算符(>,<,<=,>=,!=,==
)高于布尔运算(and
高于or
高于=
)。
总结
这里主要会再开一个python笔记博客,是因为最近发现前面那一篇太杂,条理不够清晰,并且不够循序渐进,这里就重新整理了一下。