print函数

数字

(如520,98.5)输出时不用引号

print(520)print(98.5)

也可以用引号 print("520")


字符串

必须加引号

print("hello world")


含有运算符的表达式

像$1+3$

其中1和3是操作数,加号是运算符,含有两者叫做表达式

print(3+1) 那么它就输出4


输出到本地()

open("E:/日你妈.txt","a+")

  • 其中a如果在E:/目录下没有日你妈.txt这个文件就创建一个,

    如果有就在原来基础上追加

    (读写的方式创建文件。没同名文件创建,有的话在文件内容后面追加)

现在我们输入open("E:/日你妈.txt","a+")

然后把它们存入变量F

相当于F=open("E:/日你妈.txt","a+")

再把内容写入日你妈.txt

输入print("haha",file=F)

其中file :文件路径

最后还可以把这个变量关掉

输入F.close()

1
2
3
F = open("E:/日你妈.txt","a+")
print("haha",file=F)
F.close()

不换行输出

print("hello","world","python")


一些转义字符

\n 换行(n指的是newline)

\r 回车

\t 水平制表符

\b 退格

其中 \ 是转义功能的首字母

输入print("hello\nworld")

那么它就会输出
hello
world

输入print("hello\tworld")

那么它就会输出

hello world

就是一组四个空格的位置

具体了解Python教程全套完全入门版转义字符与原字符

输入print("hello\rworld")

那么它就会输出

world

直接把hello覆盖掉了


在输入print("https:\\www.baidu.com")

它会只输出https:\www.baidu.com

这时候要多加一个或两个反斜杠

因为它把第二个反斜杠看成了转义字符首字母,就自动隐藏了


原字符

不希望字符串中的转义字符起作用,就使用原字符

假如我们输入print("hello\nworld")

那么它就会输出

hello

world

那么我们想要让\n不起作用,让它输出hello\nworld

就在"hello\nworld"前加R或r,即print(R"hello\nworld")print(r"hello\nworld")

  • 注意:原字符最后一个字符不能是反斜杠

    print(r"hello\nworld\")

    那么它就会报错了

    要非要输出hello\nworld\的话,

    输入print(r"hello\nworld\")

    也就是在后面加一个空格

    总之就是想办法不要把反斜杠和后面的引号接触在一起

    因为反斜杠会把引号转成原字符造成格式错误


二进制与字符编码

什么叫做二进制和字符编码

Python教程全套完全入门版二进制与字符编码

一个位置可以写上0或1

设有a个位置,那就有$$2^a$$个位置

无标题.png
  • 8个位置($2^8$=256)称为1字节(即8bit=1bite)

  • 1024bite=1KB(千字节)

  • 1024KB=1MB(兆字节)

  • 1024MB=1GB(吉字节)

  • 1024GB=1TB(太字节)


    各种字符编码

    截图

chr函数

十六进制是4e58,那么它的二进制是0100111001011000

  1. 输入print(chr())
  2. 再把0100111001011000丢进去,即print(chr(0100111001011000))

    但发现它会报错,因为它是二进制,而它默认的是十进制

    这时候再在0100111001011000前输入个0b

    print(chr(0b0100111001011000))

    它就会输出


ord函数

  1. 输入print(ord(”“))
  2. 再把丢进去,即print(ord("乘")),那么它就会输出20056

    20056是十进制,它默认的是十进制


  • 注意:chr函数括号内不用加引号,ord函括号内要加引号
  • 不管是几进制,转到计算机中都是二进制,因为计算机只识别二进制
  • chr函数不仅能搞二进制,还能搞八进制等各种进制,如print(chr(20056))

保留字

在Python中不可以给对象命名的单词,

如你在给新的Python文件命名时或设置变量时不可以使用

怎么查询保留字

输入

1
2
import keyword
print(keyword.kwlist)

那么它就会输出所有的保留字


标识符

给对象起的名字叫做标识符

规则如下

  • 你可以使用字母、数字、下划线
  • 不能以数字开头
  • 不能是保留字
  • 我是严格区分大小写的

变量

变量是内存中一个带标签的盒子

截图

马丽亚放进变量里

输入name="马丽亚"

其中name即变量名(标识符),可在标识符原则下随便取

"马丽亚"是字符串

截图


变量的定义和使用

变量由标识、类型和值三部分组成

  • 标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取

  • 类型:表示的是对象的数据类型,使用内置函数type(obj)来获取

  • 值:表示对象所存储的具体数据(即刚才的马丽亚), 使用print(obj)可以将值进行打印输出


如何获取标识、类型和值

先了解一点

  • id是标识
  • type是类型
  • 值的话就直接输出变量,即print(name),输入print(value(name))会报错

先将马丽亚存入name中,输入name="马丽亚"

输入print(id(name))

输出的就是这个变量在内存中的地址

输入print(type(name))

输出的就是这个变量的数据类型,即<class 'str'>,那么这个变量数据类型是str

输入print(name)

输出的就是这个变量中的值

1
2
3
4
name="马丽亚"
print(id(name))
print(type(name))
print(name)

变量的多次赋值

当我们输入

1
2
name="马丽亚"
name="楚溜冰"

再输入print(name) 它就会输出楚溜冰

马丽亚就不会被使用,将会被视为内存垃圾,

Python的垃圾回收机制会对这个垃圾进行一个回收

截图


常见的数据类型

  • int 整数类型 如98(不带小数点和引号的)
  • float 浮点数类型 如3.14159、9.8、5.6、33.9
  • bool 布尔类型 只能取两个值,这两个值就是true或者false,用来表示或者
  • str 字符串类型 只要加上引号的就称为字符串类型,如”hello world”

整数类型(integer,简写为int)

英文为integer, 简写为int, 可以表示正数、负数和零,但绝对不能有小数点和引号

整数的不同进制表示方式

  • 十进制→默认的进制
  • 二进制→以0b开头
  • 八进制→以0o开头
  • 十六进制→0x开头

截图

  1. 把随意一些整数类型存入变量当中,如输入n1=98 n2=56 n3=22(设置多个变量)
  2. 输入print(type(n1),type(n2),type(n3)),输出的都是int,即整数类型
1
2
3
4
n1=98
n2=56
n3=22
print(type(n1),type(n2),type(n3))

二进制、十进制、八进制、十六进制转换成十进制

输入print(118)(十进制)

那么它就会输出118(十进制)

输入print(0b1010110)(二进制)

那么它就输出86(十进制)

输入print(0o55555)(八进制)

那么它就会输出23405(十进制)

输入print(0x4e58)(十六进制)

那么它就会输出20056(十进制)

1
2
3
4
print(118)
print(0b1010110)
print(0o55555)
print(0x4e58)

浮点数类型

包括整数和小数部分,如3.141596535、33.56、2.33

输入

1
2
a=3.14
print(type(a))

它输出的是<class 'float'>,即浮点数类型

  • 浮点数存储不精确性

    使用浮点数进行计算时,可能会出现小数位数不确定的情况

正常状态下我们输入print(1.1+1.1)

那么它就会输出2.2

那当我们输入print(1.1+2.2)时,理论上是3.3

但它输出3.3000000000000003

这说明个别浮点数不能精确存储

任何语言中浮点数都不能精确存储

解决方案

导入模块decimal再去计算

1
2
from decimal import Decimal
print(Decimal("1.1")+Decimal("2.2"))

结果输出的就是3.3


布尔类型(bool,全称Boolean)

用来表示真或假的值

True 表示真,False 表示假

  • True表示整数1
  • False表示整数0

输入

1
2
3
b=True
c=False
print(type(b),type(c))

它就会输出<class 'bool'> <class 'bool'>,即布尔类型

转成整数计算

如输入

1
2
print(True+1)
print(False+1)

那么它就会输出

1
2
2
1

就相当于把TrueFalse分别当成1和2看


字符串类型

  • 字符串又被称为不可变的字符序列
  • 可以使用单引号、双引号或三引号来定义
  • 单引号和双引号定义的字符串必须在一行
  • 三引号定义的字符串可以分布在连续的多行
1
2
3
4
5
6
7
#单引号
print('hello world')
#双引号
print("hello world")
#三引号
print("""hello
world""")

其中三引号像这样输入那么它输出的就是

1
2
hello
world
  • 三引号有两种召唤方式

    按三下双引号,即""""""

    按三下单引号,即''''''

    例如

    1
    2
    3
    4
    5
    #输入
    print("""hello
    world""")
    print('''hello
    world''')
    1
    2
    3
    4
    5
    #输出
    hello
    world
    hello
    world

数据类型转换

  • 为什么需要数据类型转换?

    将不同数据类型的数据拼接在一起

举个例子

我想让它输出我叫 楚溜冰 我今年 20 岁了

直接输入

1
2
3
4
name="楚溜冰"
age=20
print(type(name),type(age))
print("我叫",name,"我今年",age,"岁了")

还有一种方法,通过加号(连接符)连接(把逗号换成了加号)

1
2
3
4
name="楚溜冰"
age=20
print(type(name),type(age))
print("我叫"+name+"我今年"+age+"岁了")

但是它会报错(TypeError: can only concatenate str (not “int”) to str)

意思是str和int格式不能连接在一起(name和age)

  • 解决方案如下

    将int类型通过str()转换成str类型

    print("我叫"+name+"我今年"+str(age)+"岁了")

    也就是在age前加个str,再用括号括起来

    输出的内容为我叫楚溜冰我今年20岁了

用连接符和用逗号的区别是前者没有空格,后者有空格


数据类型转换函数

str()将其它数据类型转换成str,即字符串

int()将其它数据类型转换成int,即整数

float()将其它数据类型转换成float,即浮点数

截图


计算

➕ 加法

➖ 减法

✳ 乘法

/ 除法

** 幂运算(例如2✳✳3=2的3次方=2✖2✖2=8)

% 1.取余 (一正一负要公式),例如9%4=1
2.余数=被除数-除数*商,例如9%(-4)=-3 9-(-4)✳(-3)=-3

// 整除(例如9➗4=2.25,那么9整除4就是2,抹掉了小数点和小数后面的数)

整除:一正一负往下取整。例如9➗-4得出来是-2.25,整除后是-3,如下图

无标题.png