02 - python基础知识
1.注释
- 单行注释
#
- 多行注释
'''
2.缩进
-
每级缩进都是4个空格
-
格式化快捷键:ALT + CTRL + L
3.变量
-
python是弱语言
变量声明的时候对数据类型不是很严格
-
格式:
变量名 = 值
-
变量命名规范
- 字母、数字、下划线
- 不能数字开头
- 不能使用关键字
- 区分大小写
- 类名每个首字母都大写
- 变量名第一个首字母小写,后面的首字母大写
4.数据类型

集合
-
如何查看一个变量的数据类型
money = 20 print(type(money))
type(变量) :返回变量类型
-
如何判断一个变量是否是一个指定类型
isinstance:第一个参数写变量,第二个参数写类型名称
a = 12 print(isinstance(a,int)) #True
字符串符号(单双三引号)
-
单引号
-
双引号
单双引号都可以用来包裹字符串
而且两个嵌套就可以不用转义
print("我们称他为'白小猪'二代") print('妈妈说:"你是猪"')
-
三引号
保留格式输出
poetry = ''' 静夜思 李白 窗前明月光,疑似地上霜 举头望明月,低头思故乡 ''' print(poetry) #输出的就是上面字符串的格式 print(''' 静夜思 李白 窗前明月光,疑似地上霜 举头望明月,低头思故乡 ''')
数据类型的转化
-
转化类型(变量)
money = input('输入金额:') #输入 20 读取到的类型是字符串类型 print(int(money) + 30) #50 print(str(12) + "和我连接叭") ------------------------------------------------------ #结果如下 输入金额:20 50 12和我连接叭
-
注意易错:
-
字符串转成其他类型,必须要符合其他类型的格式
比如:如果变量a='2.2'或者a='wosxjz' ,将字符串转化为整型就会报错,只能是'20'这种才能转整型
-
浮点型转整型是向下取整
-
布尔类型TRUE参与运算为1,FALSE参与运算为0
空字符串、0转化为布尔类型为FALSE;其他只要变量有值就为TRUE
-
5.输入与输出
1)普通的输出
- 多个变量之间用空格输出
print(a, b, c) #多个变量输出用逗号隔开,输出时多个值之间用空格隔开
- 多个变量之间用指定的字符输出
print(a, b, c, sep='#') #输出:a#b#c
- 输出完成后空一行
print(a, b, c, end='\n') #表示末尾换行
- 输出完成后不换行挨着输出
print('*',end='')
- print参数可以直接带运算符--输出的结果为运算后的结果
print(5/2) #2.5
print(5//2) #2
- 重复打印字符串
print("哈" * 10) #将字符串打印10次,不换行打印
-
输入:input()
userName = input() #从控制台输入 userAge = input('请输入年龄:') #input中的内容会先打印出来然后再在控制台输入 print(userName + userAge) #字符串之间可以 + 连接,但是不同数据类型不能做运算
注意:input()从控制台输入,读取的数据类型是字符串类型,赋给变量
2)格式化输出
-
输出的值需要根据变量的变化而实时变化的
-
常用的格式符号
格式符号 转换 %% 输出 % 号 %s 字符串 %d 有符号十进制整数 %f 浮点数 %c 字符 %u 无符号十进制整数 %b 二进制整数 %o 八进制整数 %x 十六进制整数(小写字母0x) %X 十六进制整数(大写字母0X) %e 科学计数法(小写'e') %E 科学计数法(大写“E”) %g %f和%e 的简写 %G %f和%E的简写 举例:
age = 10 print("我今年%d岁" % age) name = "xiaohua" print("我的姓名是%s, 年龄是%d" % (name, age))
-
保留小数点位数
money = 60.22 print('我的财产为%f元' % money) #60.220000 print('我的财产为%s元' % money) #60.22 print('我的财产为%.2f元' % money) #60.22
3)输入
-
input:表示从控制台输入,返回值即为你输入的
name = input('请输入你的名字:')
-
同时输入多个值,以空格隔开
m1,m2 = input('请输入两个值:').split(' ') #输入a b print(m1,m2) #返回a b
-
如果用一个变量接收多个以空格分割的输入:返回的是列表!!
m = input('请输入两个值:').split(' ') #输入a b print(m) #返回['a', 'b']
6.运算符
1)算数运算符
-
加减乘除
+ - * /
-
整除
//
-
次方
**
-
取模
%
-
例题:输入三位整数,计算各个位数
inStr = int(input('请输入一个三位数:')) #154
gewei = inStr % 10
shiwei = inStr // 10 % 10
baiwei = inStr // 100
print(gewei, shiwei, baiwei)
2)赋值运算符
+= //= *=
等 :两个变量运算后赋值给前面的变量
3)比较运算符
> < == >= <= != is
返回的结果只有TRUE和FLASE
- 记住python中可以连等
score = int(input('input:'))
print(80 <= score <= 100)
-
==和is的区别
is和==都是对对象进行比较判断作用
- ==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等
- is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是是否为同一个对象(地址)是否相同。
4)逻辑运算符
and or not
:运算对象为布尔类型
-
特殊的:and 两侧都是非0数字,结果是最后的数字值(因为非0的有值的变量对应的布尔类型都为TRUE)
a = 2 b = 3 print(a and b) #结果为3
-
特殊的:or两侧都是非0数字,左边是非零就返回左边的数值;左边是0、右边非零就返回右边的数值
5)位运算符
位运算 | 描述 | 示例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
a = 0011 1100 # 60的二进制
b = 0000 1101 # 13的二进制
-------------------------------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
a << n:a左移n位表示a扩大为原来的2n倍 a * 2n
a >> n:a右移n位表示a整除2n倍 a // 2n
7.进制转化函数
- 各进制转二进制:bin(各进制)
- 各进制转八进制:oct(各进制)
- 各进制转十六进制:hex(各进制)
- 各种进制转十进制:int(各进制)
前缀: 0x 十六进制 0o 八进制 0b 二进制
- 前提: 一个整数四字节对应32位二进制,计算如果没涉及到高位可以把高位的省略
二进制负数转十进制
11111101 的十进制表示 (已知11111100为负数二进制)
- 1.因为负数这个二进制为补码,所以-1得到反码 ---> 11111100
- 2.再除符号位按位取反得到原码 ---> 10000011
- 3.保留负号,得到-3
十进制正数取反后的十进制
~5 #对5取反
-
1.先得到5的原码再按位取反 00001001 -> 11110110 其实这已经得到结果了,但是计算机底层print打印出来的数是十进制,所以还要将二进制负数转化为十进制
-
2.计算机再在底层将二进制负数转化为十进制 (因为二进制的最高位为1,所以表示一个负数)
- 1>先对11110110(补码)-1得到负数二进制的反码 ---> 11110101
- 2>再对11110101(反码)除符号位按位取反得到负数二进制的原码 ---> 10001010
-
所以可以得到结果
print(~5) #-6
十进制负数转二进制
-9 #求-9的二进制
- 1.先将正九的二进制原码得出来 00001001
- 2.将正九原码取反得到反码 ----> 11110110
- 3.再+1得到补码----> 11110111
十进制负数取反后的十进制
~-4 #对-4取反
-
1.先要得到-4的原码 十进制负数转二进制 --> 11111100
-
2.再取反 00000011 --> 最高位为0,所以对应的十进制为 3
8.交叉赋值
-
python中支持交叉赋值
a = 1 b = 2 a,b,c = b,a,b