内容总结:
print()函数
- print函数输出的内容可以是数字,字符串,含操作数和运算符的表达式
- 数字:
print(123)
(直接出入,不加引号) - 字符串:
print('xxxx')
(需要加引号才能被计算机识别)
当输出内容中带有单、双、三引号时,代表计算机不用理解,直接输出即可 - 含操作数和运算符的表达式
输出的是表达式的运算结果
如:print(1+2)
:这里1,2叫做操作数,+为运算符,输出结果为3
- 内容可输出到控制台,文件或显示器上
- 输出到文件
注意点:1.所指定的盘要存在 2.使用file=xx 的形式
fp=open('D:/text.txt','a+') #a+:以读写的方式打开文件,若文件不存在,则创建;若存在,则在原有文件的基础上追加内容
print('helloworld',file=fp) #若只写fp,则打开text文件为空
fp.close()#关闭
- 输出形式分为换行,不换行
输出内容不换行:几个输出内容间用“,”隔开
print('hello','world','python')
输出结果:
4. 为输出的几个字符之间添加分隔符:sep=' '
print('hello','world','love',sep=',')
#hello,world,love
转义字符
转义字符指:+想要实现转义功能的首字母
如:换行:\n(new line的首字母 )
回车:\r(return的首字母)
水平制表位:\t(tab的首字母)
退格:\b(back的首字母)
关于制表位:一个制表位(\t)占4个位置,每4个位置为\t。若\t前没有占满4位,则\t的功能为补全4位;否则开一个新的制表位(占4个位置):
print("hello\tworld")
print("hello123\tworld")
输出结果:
原义字符
使转义字符不起作用
在字符串前加上r或R即可
注意:字符串最后一位不能是反斜杠(\),但可以是两个反斜杠(\)
二进制与字符编码
- 8bit=1(byte)字节,1024byte=1mb(兆字节)
- chr()表示ASCII码对应的字符;ord()返回字符对应的ASCII码
print(chr(0b100111001011000)) #二进制串为“乘对应的二进制表示” ,0b表示输入的为二进制字符
print(ord("乘"))
标识符和保留字
- 保留字
定义:一些单词在python中被赋予了特定意义,在我们为对象起名字时这些单词不能使用。(禁用的对象名)
如:使用命令
import keyword
print(keyword.kwlist)
可以查看保留字有哪些:
[‘False’, ‘None’, ‘True’, ‘peg_parser’, ‘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’]
- 标识符
定义: 用户给变量、函数、类、模块和其他对象起的名字
规则: 不能使用保留字;不能用数字开头,严格区分大小写
变量
标识符的一种。可以把变量看做一个带标签的盒子(name),把需要的数据(Bob)放(=)进去即为赋值过程。
如name=Bob
,这里面name为变量名;“=”为赋值运算符;Bob为值。
注意: print()函数输出时,加引号表示输出的是这个字符串,不加引号输出的是这个变量的值
name='Bob'
print(name)
print("name")
输出结果:
- 变量由3部分组成:
- 标识:表示对象储存的内存地址,可用内置函数id()获取。
- 类型:表示对象数据类型,可用内置函数type()获取。
- 值:表示对象储存的具体数据,使用print()输出值。
name='Bob'
print('值',name)
print('标识',id(name))
print('类型',type(name))
输出结果:
2. 对变量多次赋值后,变量名指向新的空间
如:
name='Bob'
name='Alice'
print(name)
输出结果:Alice
数据类型
类型 | 表示 | 例 |
---|---|---|
整数类型 | int | 12 |
浮点数类型 | float | 1.2 |
布尔类型 | bool | True ,False |
字符串类型 | str | ‘我爱python’ |
- 整数类型
可表示正数,负数和0,
默认为表示为十进制表示
二进制(Binary):0b+二进制表示
八进制(Octal):0o+八进制表示
十六进制(Hexadecimal):0x+十六进制表示
print('十进制',12)
print('二进制',0b100011)
print('八进制',0o71)
print('十六进制',0xB2)
- 浮点类型
浮点数存储可能有不准确性,如:
print(1.1+1.2) #2.3
print(1.1+2.2) #3.3000000000000003
可以导入模块decimal进行准确的十进制运算(传入的参数为int或字符串DNA不能是浮点数):
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
- 布尔类型
取值只有2种:Ture(真)或False(假)
可转化为整数进行计算:Ture → \to → 1;False → \to → 0
print(Ture+1)#输出结果为2,ture表示1
- 字符串类型
使用’ ‘," ",’" "'定义,单、双引号定义的字符串要在一行;三引号定义的字符串则可以分布在连续的多行 - 数据类型转换
将不同数据类型拼接在一起时需要数据类型转换。
要转换为什么类型就用“类型名(要转换的变量)"
注意:
- 文字类和小数类字符串无法转为int类型;float转化为int会去掉小数位
- 文字类字符串无法转为int;int转为float末尾为“.0”
如:
name='张三'
age=20
print(type(name),type(age))
# print('我叫'+name+'今年,'+age+'岁')
print('我叫'+str(name)+'今年,'+str(age)+'岁') #+为连接符
# str(name)表示将int类型转换为str类型
输出结果:
n1='20.6'
n2='20'
n3=20
n4=True
print(type(n1),type(n2),type(n3),type(n4))
#print(int(n1),type(n1)) #将str转为int报错,因为字符串为小数串
print(int(n2),type(int(n2)))
print(float(n3),type(float(n3)))
print(int(n4),type(int(n4)))
输出结果:
注释
注释类型:
单行注释:#开头
多行注释:无单独标记,一般认为不含变量名的一对三引号间的代码为注释内容
运算符
按位运算符
原码:数的二进制表示,第一位为0 表示正数,否则为正数(符号值+数值表示)
反码:正数的反码为本身;负数的反码为符号位不变,其余各位取反
补码:正数的补码为本身;负数的补码为符号位不变, 其余各位取反, 最后+1。 (即在反码的基础上+1)
十进制数 | 原码 | 反码 | 补码 |
---|---|---|---|
-6 | 1000 0110 | 1111 1001 | 1111 1010 |
6 | 0000 0110 | 0000 0110 | 0000 0110 |
-21 | 1001 0101 | 1110 1010 | 1110 1011 |
21 | 0001 0101 | 0001 0101 | 0001 0101 |
逻辑符号 | 说明 | 作用 |
---|---|---|
~n | 按位取反 | |
a&b | 按位与 | 全1则1 |
a|b | 按位或 | 有则1 |
a^b | 按位异或 | |
a<<n | a向左移n位,用零填充 | |
a>>n | a向右移n位,用零填充 |
1.按位取反(~)
对十进制数的补码进行按位取反,再找到其原码,原码的十进制数表示即为按位取反结果
技巧:
~n=-(n+1)
~(-n)=n-1
6
原码:0000 0110
反码:0000 0110
补码:0000 0110
~(0000 0110):1111 1001(为~6的补码)
反码:1111 1000(反向求反码)
原码:1000 0111(-7)(反向求原码)
所以~6==-7
-21
原码:1001 0101
反码:1110 1010
补码:1110 1011
~(1110 1011):0001 0100(为~6的补码)
反码:0001 0100(反向求反码)
原码:1001 0111(20)(反向求原码)
所以~(-21)==20
2.按位与(&),按位或(|)
二进制表示按位与,全1则1
二进制表示按位与,有1则1
10:1010
3:0011
1010&0011=0010
1010|0011=1011
所以3&10==2
所以3|10==11
3.向左移位(<<),向右移位(>>)
a<<n的结果为a*(2^n)
a>>n的结果为a//(2^n)
10:1010
右移1位:1010 0(20)
右移2位:1010 00(40)
左移1位:0101(5)
左移2位:0010(2)
序列运算符
序列运算符的对象指列表,字符串,元组
运算符 | 说明 | 作用 |
---|---|---|
s[i] | 读取索引i处的元素 | |
s[start:stop] | 切片 | start,stop指切片的起止索引位置在 |
s[start:stop:step] | 切片,指定步长 | |
s + t | 拼接s,t | |
k*s | s+s+…+s | k个s拼接在一起 |
val in s/ val in s | 检某个值是否在s中 | 返回值为布尔值(True/False) |
s='1234'
t='5678'
print(s+t)#12345678
print(3*s)#123412341234