1、注释
#用于整行
‘’’ ‘’’ 或""" “”" 多行注释
2、运算符
##1)算数运算符
-
-
- /
// 整除(地板除)
% 取余
** 幂
- /
-
print(3//4)
print(3%4)
print(2**3)
0
3
8
##2)比较运算符
= < <= == !=
##3)逻辑运算符
and
or
not
print((6> 3) or (11< 9))
True
-
##4)位运算符
-
按位取反
& 按位与
| 按位或
^ 按位异或
<< 左移
右移
print(~4)
print(4&5)
print(4|5)
print(4^5)
print(4<<2)
print(4>>2)
-5
4
5
1
16
1
print(bin(4)) #找到4的二进制表示
print(bin(5))
print(bin(~4),~4)
print(bin(4 & 5),4 & 5)
print(bin(4 | 5), 4 | 5)
print(bin(4 ^ 5), 4^5)
print(bin(4 << 2), 4<<2)
print(bin(4 >> 2 ), 4 >> 2)
0b100
0b101
-0b101 -5
0b100 4
0b101 5
0b1 1
0b10000 16
0b1 1
## 5)三元运算符
x,y=4,5
if x < y:
small=x
else:
small=y
print(small)
4
x,y = 4,5
small = x if x < y else y
print(small)
4
##6)其他运算符
in 存在
not in 不存在
is 是
is not 不是
letters= ['A','B','C']
if 'A' in letters:
print('A'+ ' exists')
if 'h' not in letters:
print('h'+ ' not exists')
A exists
h not exists
#比较的变量指向不可变类型
a = "hello"
b = "hello"
print(a is b, a == b)
print(a is not b, a !=b)
True True
False False
#比较的变量指向可变类型
a = ["hello"]
b = ["hello"]
print(a is b, a == b)
print(a is not b, a !=b)
'''
is,is not 对比的是两个变量的内存地址
==,!=对比的是两个变量的值
比较的两个变量,指向的都是地址不可变的类型,那么is isnot和== !=是完全等价的
如果指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的
'''
False True
True False
#运算符的优先级:
一元运算符优于二元运算符。例如3** -2等价于 3 **(-2)
先算数运算,后移位运算,最后位运算。 例如 1<<3 + 2&7 等价于 (1<<(3+2)))& 7
逻辑运算最后结合。例如3<4 and 4< 5等价于(3<4)and (4<5)
print(-3 ** 2)
print(3 ** -2)
print(1<<3 + 2 & 7)
print(-3 * 2 + 5/-2-4)
print(3 < 4 and 4 < 5)
#3.变量和赋值
使用变量前需先对其赋值
变量名可以包括字母、数字、下划线,但不能以数字开头
Python变量名是大小写敏感的,foo !=Foo
#4.数据类型与转换
int 整形
float 浮点型 3.149
bool 布尔型 True,False
##1)整形
a = 1031
print(a,type(a)) #type查看数据类型
1031 <class 'int'>
#Python万物皆对象Object,有相应的属性attributes和方法methods
b = dir(int) #查看属性及方法
print(b)
具体怎么用,需要哪些参数argument,需要查文档
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
#找到一个整数的二进制表示,再返回其长度
a = 1031
print(bin(a))
print(a.bit_length())
0b10000000111
11
##2)浮点型
print(1,type(1))
print(1.,type(1.))
a = 0.00000023
b= 2.3e-7
print(a)
print(b)
1 <class 'int'>
1.0 <class 'float'>
2.3e-07
2.3e-07
#想保留浮点型的小数点后n位,可以用decimal包离的Decimal对象和getcontext()方法来实现
import decimal
from decimal import Decimal
#使用 getcontext()显示Decimal对象的默认精度值是28位(prec =28)
a = decimal.getcontext()
print(a)
b=Decimal(1) / Decimal(3)
print(b)
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
0.3333333333333333333333333333
#使1/3保留4位,用getcontext().prec来调整经度
decimal.getcontext().prec = 4
c = Decimal(1) / Decimal(3)
print(c)
0.3333
##2)布尔型 再数字运算中用1和0代表True和False
print(True + True)
print(True + False)
print(True * False)
2
1
0
'''
可以用bool(X)来创建变量,其中x可以是:
基本类型:整形 浮点型 布尔型
容器类型:字符串、元组、列表、字典和集合
'''
#bool作用再基本类型变量,X只要不是整型0、浮点型0.0,bool(X)就是True,其余就是False
print(type(0),bool(0),bool(1))
print(type(10.31),bool(0.00),bool(10.31))
print(type(True),bool(False),bool(True))
<class 'int'> False True
<class 'float'> False True
<class 'bool'> False True
#bool作用在容器类型变量,X只要不是空的变量,bool(X)就是True,其余就是False
print(type(''),bool(''),bool('python'))
print(type(()),bool(()),bool((10,))) #元组
print(type([]),bool([]),bool([1,2]))
print(type({}),bool({}),bool({'a':1,'b':2}))
print(type(set()),bool(set()),bool({1,2})) #集合
<class 'str'> False True
<class 'tuple'> False True
<class 'list'> False True
<class 'dict'> False True
<class 'set'> False True
#确定bool(X)的值是True还是False,就看X是不是空,空的话就是False,不空就是Ture
#对于数值变量,0,0.0都可以认为是空的
#对于容器变量,里面镁元素就是空的
## 3)获取类型信息 tpye(object)
print(type(True))
<class 'bool'>
#isinstance(object,classinfo) 判断一个对象object是否是一个已知的类型classinfo
print(isinstance(1,int))
print(isinstance(5.2,float))
print(isinstance(True,bool))
print(isinstance('5.2',str))
True
True
True
True
#type()不会认为是一种父类类型,不考虑集成关系
#isinstance()会认为子类是一种父类类型,考虑继承关系,如果要判断两个类型是否相同建议用Isinstance()
##4)类型转换
转换为整形 int(x,base=10)
转换为字符串 str(object=’’)
转换为浮点型 float(x)
print(int('520'))
print(int(520.52))
print(float('520.52'))
print(float(520))
print(str(10 + 10))
print(str(10.1 + 5.2))
520
520
520.52
520.0
20
15.3
5.print(函数)
print(*objects, sep= ’ ‘, end=’\n’, file=sys.stdout, flush=False)
sep 分隔符
end 输出结束时的字符,默认是换行符\n
file 定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件
flush 立即把内容输出到流文件,不作缓存
#没有参数,end默认\n,每次输出换行
shoplist = ['apple','mango','carrot','banana']
print("This is printed without 'end' and 'sep'.")
for item in shoplist:
print(item)
This is printed without 'ed' and 'sep'.
apple
mango
carrot
banana
#end设置参数&
shoplist = ['apple','mango','carrot','banana']
print("This is printed with 'end='&''.")
for item in shoplist:
print(item,end='&')
print('hello world')
This is printed with 'end='&''.
apple&mango&carrot&banana&hello world
#sep设置&分割,end没有设置姑默认换行
shoplist = ['apple','mango','carrot','banana']
print("This is printed with 'sep='&''.")
for item in shoplist:
print(item,'another string',sep='&')
This is printed with 'sep='&''.
apple&another string
mango&another string
carrot&another string
banana&another string
练习题:
怎样对python中的代码进行注释?
#,’’’ ‘’’,""" “”"
python有哪些运算符,这些运算符的优先级是怎样的?
一元运算符>二元运算符。
先算数运算>移位运算>最后位运算。
逻辑运算最后结合。
python 中 is, is not 与 ==, != 的区别是什么?
is,is not 对比的是两个变量的内存地址
==,!=对比的是两个变量的值
python 中包含哪些数据类型?这些数据类型之间如何转换?