学习python
-
三种引号
- 单引号
''表示字符串,单引号内可以加双引号 - 双引号
""表示字符串,双引号内可以加单引号 - 三引号
'''或"""支持换行,其他两个不支持换行name = ''' 123
-
字符串的转义符
\n换行\t横向制表符\r回车\b退格符\a响铃\e转义\f换页\v纵向制表符\000空\续行符\\反斜杠符号\'单引号\"双引号\oyy八进制数,y 代表 0~7 的字符,例如:\012 代表换行。\xyy十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行\other其它的字符以普通格式输出
-
关于变量
-
可设多个变量
x,y,z = 1,2,3 -
变量命名 使用:
英文字母,下划线_和数字组成 -
关键字不能做变量名 在管理员模式下输入
python回车在输入import keyword回车在输入print(keyword.kwlist)回车 可显示不能用作变量名的英文 -
关键字:
'False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','form','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield' -
内置函数(BIF)也不做变量名:
'ArithmenticError','AssertionError','AttributeError','BaseException','BlockingIOError','BrokenPipeError','BufferError','BytesWarning','ChildprocessError,'ConnectionAbortedError','ConnectionError,'ConnectionRefusedError','ConnectionResetError','DeprecationWarning','EOFError','ELLipsis','EnvironmentError','Exception','False','FileExistsError','FileNotFoundError','FloatingPointError','FutureWarning','GeneratorExit','IOError','ImportError','ImportWarning','IndentationError','IndexError','InteruptedError','IsADirectoryError','KeyError','KeyboardInterrupt','LookupError','MemoryError','ModuleNotFoundError','NameError','None','NotADirectoryError','NotImplemented','NotImplementedError','OSError','OverflowError','PendingDeprecationWarning','PermissionError','ProcessLookupError','RecursionError','ReferenceError','ResourceWarning','RuntimeError','RuntimeWarning','StopAsyncIteration','StopInteration','SyntaxError','SyntaxWarning','SystemError','SystemExit','TabError','TimeoutError','True','TypeError','UnboundLocalError','UnicodeDecodeError','UnicodeEncodeError','UnicodeError','UnicodeTranslateError','UnicodeWarning','UserWarning','ValueError','Warning','WindowsError','ZeroDivisionError','__build_class__','__debug__','__doc__','__import__','__loader__','__name__','__package__','__spec__','abs','all','any','ascii','bin','bool','bytearray','bytes','callable','chr','classmethod','compile','complex','copyright','credits','delattr','dict','dir','divmod','enumerate','eval','exec','exit','filter','float','format',frozenset','getattr','globals','hasattr','hash','help','hex','id','input','int','in=sinstance','issubclass','iter','len','license','list','locals','map','max','memoryview','min','next','object','oct','open','ord','pow','print','property','quit','range','repr','reversed','round','set','setattr','slice','sorted','staticmethod','str','sum','super','tuple','type','vars','zip'
-
输入输出
1.a = input ('请输入:') print(a) 注:input接受的内容都为字符串
2.input 输入 print 输出,打印
-
Math模块
import math 回车
math.pi 回车
结果输出圆周率:3.141592653589793
dir(math) 查看模块内容
-
数值类型
1.整数int 例:123
2.浮点数float 例:0.001
- 2.1 浮点数高精度计算
-
import decimal回车
-
-
- decimal.Decimal(
'1.01') - decimal.Decimal('0.9')得Decimal('0.9')
- decimal.Decimal(
-
-
-
注:可以使用decimal模块来做浮点数的精确计算,使用时传入的是一个字符串3.布尔型bool两个值True(值为1)和False(值为0)
-
-
数值类型计算
1. + - * / %
取余**幂运算//整除2.符号:
!=不等于==相等>=小于等于<=大于等于<小于>大于3.与:
and表示并且或者和的意思 只有两边为真才为真4.或:
or表示或者的意思 只要有一边为真则为真5.非:
not表示取反的意思 真变假,假变真 -
Python运算符优先级
1. ** 指数 (最高优先级)
2. ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
3. * / % // 乘,除,求余数和取整除
4. + - 加法减法
5. >> << 右移,左移运算符
6. & 位 'AND'
7. ^ | 位运算符
8. <= < > >= 比较运算符
9. == != 等于运算符
10. = %= /= //= -= += *= **= 赋值运算符
11. is is not 身份运算符
12. in not in 成员运算符
13. not and or 逻辑运算符
-
分辨类型
1.type()
比较运算符返回结果为bool值
-
字符串格式化
- %
格式化 占位符 - %d
格式化整数 ~~ %6d 表示字符串长度 - %f
格式化浮点数(小数) ~~ %06.2d 0表示填充;2表示只保留两位小数 - %c
格式化ASCLL码 ~~ %97 输出对应数值的ASCLL码符 得到'a' - %o
八进制输出 ~~ %8 输出八进制 得到'10' - %x
十六进制输出 ~~ %16 输出十六进制 得到'10' - %o
八进制输出 ~~ %8 输出八进制 得到'10' - %e
格式化输出科学计数法 ~~ %10000 输出科学技数表示法 得到'1.000000e+04' - %r
对象原样输出 ~~ %'123' 原样输出对象 得到"'123'" - %s
格式化字符串s='hello' t='kt'print('%s %s'%(s,t)) 输出拼接字符串 得到字符串'hello kt'
-
字符串的format 方法
'{a:.2f}'.format(a=12.3333)保留两位小数输出12.33'{:.2%}'.format(0.35)以百分号形式输出输出35.00%'{0:x}'.format(20)转换成16进制输出14'{b:0<10}'.format(a=12.3,b=13.35)左对齐,填充数字0输出13.3500000'{a:*^10}'.format(a=12.3,b=13.35)居中对齐输出***12.3***'{{hello {} }}'.format('python')转义大括号{ hello python }'f= 'hello {0}'.format f('python')当作函数调用输出'hello python'
-
-
字符串通常是不可变 但可用
replace()方法替换原字符串,但并不会修改原字符串,只会返回一个新的对象,字符串所有的方法都是如此
-
-
-
可变对象:list、dict、set
-
-
-
不可变对象:数值、str、元组
-
upper()全变成大写lower()全变成小写capitalize()首字母大写title()单词首字母大写,标题形式strip()去掉两边空格split()字符串的切割 ('字符串',次数)join()拼接strip()去掉两边空格find()查找 查找元素在字符串中的索引值,找不到元素会返回-1
-
字符串内部提供判断方法
isalpha()判断全是字母isdigit()判断全是数字islower()判断全是小写isupper()判断全是大写
-
字符串的编码
encode(encoding= '' )将字符串编码成指定的编码decode( '' )在转换回来
-
Python包含以下函数:
cmp(list1, list2)比较两个列表的元素len()列表元素个数max()返回列表元素最大值min()返回列表元素最小值list()将元组转换为列表
-
条件语句
1.if else
if 判断条件:
print()
else:
print()
if 判断条件:
print()
elif 判断条件:
print()
else:
print()
2.三目运算
print(True if a>5 else False)
3.while循环
a = 1
while a<5:
print(a)
a +=1 依次执行,直到循环结束
else:
print('循环结束')
若while后面的条件写True,则内部需要加break来终止循环,使用break终止的循环,是不会执行else的内容
continue只会跳出当前循环,直接执行下一次循环
4.for循环
for i in 'python':
print(i) 循环这个字符串的长度len 决定循环次数
结果为p y t h o n
for i in range(10):
print(i,end=',')
结果为0,1,2,3,4,5,6,7,8,9
range函数可以取到一个范围内的整数 range(开始,结束,步长)
print里面的end可以设置每个值打印之后输出的字符串,默认是换行
-
-
- 可迭代对象:字符串,列表,元组,字典,集合
-
for i in range(1,6,2):
print(i,end='')
i = 'python'
print(i,'*')
结果为1python* 3python* 5python*
for i in range(1,20):
if i % 2 ==0 or i % 3 ==0:
continue
else:
print(i,end=',')
结果为1,5,7,11,13,17,19
for循环和while循环都可以使用break和continue 同时也可接else,当循环被break终止时,else不会执行
for i in range(1,20):
if i % 2 ==0 or i % 3 ==0:
continue
elif i % 15 ==0:
break
else:
print(i,end=',')
else:
print('循环结束')
结果为1,5,7,11,13,17,19,循环结束
list = [] 列表里几乎可以放任何python对象
-
取100以内所有偶数:
-
1.
for i in range(101): if i % 2 == 0: print(i) -
2.
list_a = [] for i in range(101): if i % 2 == 0: list_a.append(i) -
3. 列表推导表达式
list_b = [i for i in range(101) if i % 2 == 0 ]
i是保存在列表中得值for i in range(101)for循环来得到值if i % 2 == 0if判断来对值进行筛选[ ]用中括号括起来,表示列表
-
list 列表
-
-
索引 index 从0开始,负索引从尾部往前数 -1 为最后一位 list = [开始:结束:步长]
-
添加的三种方法:append('单个添加');extend(['批量添加','批量添加']);insert(1,'指定位置添加')
删除的三种方法:pop('一次移除一个');remove(['移除指定元素']);claer('一次性清空')
列表的其他方法:count('统计元素个数');reverse(['将列表顺序颠倒,不排序']);sort('对列表中元素进行排序,采用Timsort算法排序');copy('复制');
-
元组:
()里面的为元组,类似列表,也可以索引取值,但元素不能更改,一旦确定,就无法改变。如果元组只有一个元素(1,)还是要跟上逗号,否则会当作一个元素,而不是元组
拆包: 元组可以同时赋值给多个变量,只要变量个数不超过元组长度,变量前面加上*号则可以将多个元素都接受,并组成一个列表
例:
a = (1,)
b = (['hello','python','!',])
c = ([6,8,10,])
tuple_d = a,*b,*c
print(tuple_d)
结果为((1,),'hello','python','!',6,8,10)
可以用type(tuple_d)去进行检测
-
字典:
字典以键值对的形式定义
1. dict_a = {} 空字典
2. dict_b = dict(a=1,b=2) 使用dict函数定义字典
3. dict_c = {'a':1,'b':2} 常规定义方式,结果与dict_b结果相同
字典的增删改查
- 通过
key来取值,key不存在则报错 - 通过
get()方法来取值,key不存在,也不会报错 - 通过
setdefault()方法来查找,当key存在则返回values值,如果key不存在则添加键值对 - 通过
update()方法可以更新key的值,如果key不存在则添加键值对 keys()方法可得到所有的keyvalues()方法可得到所有的valuesitems()方法可得到所有的键值对pop()方法可删除指定的keypopitem()方法可删除字典中的最后一个键值对clear()方法可删除字典中的所有元素
集合的运算
- 交集:两个集合中相同的元素用
set()表示& - 并集:两个集合不同的元素合并在一起
| - 差集:两个集合减去两个集合中相同的元素
-
创建一个空集合必须用 set() 而不是 { },因为 { }是用来创建一个空字典。
集合的增删改查
- add() 添加元素
- update() 添加 参数可以是列表,元组,字典等
- pop() 随机删除集合中的一个元素
- remove() 移除元素