本文主要记录和总结在学习和使用python过程一些基础知识
1.缩进代替花括号,注意利用编辑器的自动缩进功能
x=50 y=20 if x>100: y=x+20 else: y=x-20
2.单行注释和多行注释
#这是单行注释,快捷键ctrl+/ ''' 多行注释第一种方法 第一行注释 第二行注释 ''' """ 多行注释第二种方法 第三行注释 第四行注释 """
3.基本输入
x = input("请输入x")
4.输出
x=100 print(x,1,'ab') #输出多个默认用空格隔开 #输出结果:100 1 ab print(x,1,'ab',sep='--')#用sep参数指定分隔符号或字符串 #输出结果:100--1--ab
5.输出到文件
file1 = open('test.txt','w') print(1,'ab',file=file1) file1.close() open('test.txt','r').read()
6.数字
print(0b101,0o734,0xec3) #输出结果:5 476 3779 # int函数可以用于转换进制,第一个参数为整数字符串 ,第二个参数表示进制 print( int('111'),int('111',2),int('111',8),int('111',16),int('111',5) ) #输出结果:111 7 73 273 31 # 内置函数bin(x)、oct(x)和hex(x)用于将整数转换为对应进制的字符串 print(bin(50),oct(50),hex(50)) #输出结果: 0b110010 0o62 0x32
7.浮点
x=3.4 y=0.17e+10 z=1.92e-3 i=.3 j=3. print(x, y, z, i, j) #输出结果:3.4 1700000000.0 0.00192 0.3 3.0
8.复数
c1 = complex(3,2) c2 = complex(4,3) c3 = 3+2j #也可直接这么写 print( c1, c2, c1*c2, c2-c3 ) #输出结果:(3+2j) (4+3j) (6+17j) (1+1j)
9.布尔类型以成为Python的一种正式的数据类型。布尔类型有两个值True和False,
分别用于表示逻辑真和逻辑假。True和False是两个预定义的内部变量。
从面向对象的角度看,bool类型是int类型的子类,True和False是bool类型的实例
print(type(True)) # type() 返回输入的变量类型 print(True+3) print(isinstance(True,int)) # isinstance(object,type) 来判断一个对象是否是一个已知的类型 print(True is 1) #结果: """ <class 'bool'> 4 True False """
10.数值的自动转换
在遇到不同类型的数字参数运算时,Python总是将简单的类型转换为复杂的类型
print(2+3.5,type(2+3.5)) print(2+3.5+(2+3j),type(2+3.5+(2+3j))) #结果: """ 5.5 <class 'float'> (7.5+3j) <class 'complex'> """
11.真除法/和floor除法 //以及求余(模运算)
5//2,5/2,5%2,10%6 #2, 2.5, 1, 4
12.位运算和移位运算
# & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 # | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 # ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 # ^ 按位异或运算符:当两对应的二进位相异时,结果为1 # << 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 # >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 print(~5,4^5,-4^5) print(1<<2,-1<<2,8>>2) """ -6 1 -7 4 -4 2 """
13.比较和连续比较
a=0;b=4;c=5 2 >3,a < b < c,a< b >c #相当于 a<b and b>c """ False, True, False """
14.小数
# 因为计算机中硬件限制,浮点数有一个缺点就是缺乏精确度 # 大多数的float型数值并不能以精确的形式在计算机中表示出来, # 只能以十分接近原数值的形式储存,因此在计算过程中会出现小的误差。 print(0.3+0.3+ 0.3) #0.8999999999999999 0.3-0.1-0.1 #0.09999999999999998
15. 数学函数
a=5 print( abs(-5),max(1,3,7,2),sum({3,4,7}),pow(3,2),round(1.56),round(1.49),eval('a*a+1') ) import math math.pi, math.e, math.inf,math.sqrt(9.7), math.ceil(2.3),math.floor(2.3) """ 5 7 14 9 2 1 26 3.141592653589793, 2.718281828459045, inf, 3.1144823004794873, 3, 2 """
16.is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等
x = 5 y = 5 print(x == y) print(x is y) print(id(x)) #id() 函数用于获取对象的内存地址 print(id(y)) x = (1, 2, 3) y = (1, 2, 3) print(x == y) print(x is y) print(id(x)) print(id(y)) """ True True 1543528736 1543528736 True False 1724058837784 1724058750624 """
17.序列赋值
#元组、列表赋值 x,y=5,10 x,y=(5,10) x,y=[5,10] print(x,y) #字符串赋值 x,y,z='abc' print(x,y,z,type(x),type(y)) """ 5 10 a b c <class 'str'> <class 'str'> """
18.变量名前用*号的情况
x,*y=1,2,3,4,5,6,7 print(x,y) x,*y,z=3,6,9,12,15 print(x,y,z) """ 1 [2, 3, 4, 5, 6, 7] 3 [6, 9, 12] 15 """
19.变量共享引用后的情况
x = [1,2,3] #共享数据 y=x print(x,y) x[0]=99 y[1]=88 print(x,y) #使用copy则会复制一份数据 a=[1,2,3] b=a.copy() a[0]=99 b[1]=88 print(a,b) """ [1, 2, 3] [1, 2, 3] [99, 88, 3] [99, 88, 3] [99, 2, 3] [1, 88, 3] """
end