赞
踩
大家好,给大家分享一下慕课python程序设计答案,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
参考资料备用:
python ABC
3.8.2Documentation
python cookbook 3rd
pip安装超时解决办法
cls
清屏Python入门导学
Python基本类型:数字,字符串
组:列表,元组,集合,字典
变量与运算符
分支、循环、条件和枚举
包、模块、类
函数
面向对象:类,实例,方法,继承
正则表达式和JSON
枚举类型,闭包
匿名函数、高阶函数、装饰器
爬虫实战
Python杂记
正确打开方式:遇到问题时,随手拿起Python写个工具
int
short
,int
,long
float
type(2/2)
是float
(1.0),type(2//2)
是int
(1)
*双斜杠是“整除”
bin()
:将其他进制转换成2进制oct()
:将其他进制转换成8进制hex()
:将其他进制转换成16进制int()
:将其他进制转换成10进制bool
:表示真、假True/False
,要大写None
,就都是True
complex
:复数(36j
)"let's go"
,'let\'s go'
- '''
- hello world
- hello world
- '''
- """
- hello world
- hello world
- """
'运行
'\n'
输出还是'\n'
,不换行print("""hello world\nhello world\n""")
会输出换行- 'hello\
- world'
'运行
输出'helloworld'
\n
换行\r
回车:光标回到本行首位置,不会换行\t
横向制表符:TAB\'
单引号r
/R
,原始字符串–所看即所得。'let's go'
无法通过加r解决–引号要成对出现'hello world'[0:4]
输出'hell'
,要读到字符下一位'hello world'[0:-1]
输出'hello worl'
"hello world"[6:]
,默认取字符串最后一位"hello world"[-5:]
,后往前数第5位,到末尾列表内部可以存放不同类型元素
列表内部可以嵌套列表
- ["新月打击","苍白之瀑","月之降临","月神冲刺"][0]
- '新月打击' #返回的是元素
- ["新月打击","苍白之瀑","月之降临","月神冲刺"][-1:]
- ['月神冲刺'] #返回的是列表
'运行
+
*3
:把列表内元素重复三次type(('hello'))
返回值str
:为什么只有一个元素的元组是元素的类型?(1,)
()
type([1])
返回值是list
"hello world"[0:8:2]
返回'hlow
–在0-7的切片内隔1取元素?+
,*
in
,not in
,返回bool值3 in [1,2,3,4,5]
返回True
len()
,max()
,min()
:返回序列长度、最大值、最小值ord()
返回单个字符的ASC码(字符串不行){1,2,3,4,5}
不支持序号、切片{1,1,1,2,2,3,4,5}
返回{1,2,3,4,5}
len()
in
、not in
{1,2,3,4,5,6} - {3,4}
:两个集合取差集{1,2,3,4,5,6} & {3,4}
:两个集合取交集{1,2,3,4,5,6} | {3,4,7}
:两个集合取并集type({})
返回dict
类型 – 不可用type(set())
返回set
类型 – 正确操作key
和value
,set
的延生而不是序列的{key1:value, key2:value, ……}
- {
- 'Q':"新月打击",'W':"苍白之瀑",'E':"月之降临",'R':"月神冲刺"}['Q']
- '新月打击'
- {
- 'Q':"新月打击",'Q':"苍白之瀑",'E':"月之降临",'R':"月神冲刺"}['Q']
- '苍白之瀑'
- {
- 'Q':"新月打击",'Q':"苍白之瀑",'E':"月之降临",'R':"月神冲刺"}
- {
- 'Q':"苍白之瀑",'E':"月之降临",'R':"月神冲刺"}
'运行
value
类型无限制,可以也是一个字典key
必须是不可变的类型 – 字符串和元组不可变,列表可变=
:赋值符号- type = 1
- type(1) #报错,此时等价于1(1)
- a = 1
- b = a
- a = 3 #a指向了新的int(3)
- print(b) #1
-
- a = [1,2,3,4,5]
- b = a
- a[0] = '1' #a没有指向新的list,而是改变原来的list
- print(b) #['1',2,3,4,5]
'运行
int
、str
、tuple
list
、set
、dict
- #str不可变,id()得到地址,发现前后地址变了,说明不是在原地址上修改
- b = 'hello'
- b = b + 'python' #生成新的字符串,再赋值给b
- print(b) #hellopython
'运行
list
和tuple
:- a = (1,2,3,[1,2,['a','b','c']])
- a[2] = '3' #不可改变,报错
- a[3][2][1] = '4' #可以改变,变为(1,2,3,[1,2,['a','4','c']])
+
,-
,*
,/
,//
整除,%
,**
指数(2**5 = 32
)
bool
值int
,float
中0
被认为是False
""
是False[]
被认为是Falseand
和 or
的返回值 – 最后一个读到的内容1 and 2
返回2,2 and 1
返回1 – 读到第二个数字才能判断1 or 2
返回1 – 读到第一个1的时候就能判断了in
,not in
key
is
,is not
– 两个变量的身份是否相等- a = 1
- b = 1.0
- a == b #True
- a is b #False
'运行
id()
查看他们的地址,地址相同身份相同 – is
比较的是地址- a = {
- 1,2,3}
- b = {
- 2,1,3}
- a == b #True, set无序
- a is b #False, 地址不同
'运行
==
值is
身份isinstance(a, int)
类型isinstance(a, (int, str, float))
a是否是元组里三个类型中的一个,是返回True,否返回False- b = 3
- bin(b) #'0b11',3
- bin(~b) #'-0b100',前面取负末位+1,-4
- a = 2
- bin(a) #'0b10'
- bin(a<<1) #'0b100'
- bin(a>>3) #'0b0'
'运行
表达式是运算符和操作数组成的序列
=
左结合,与运算符优先级无关not > and > or
- if d:
- a = input() #读入的是字符串
- pass #空语句,占位语句
- elif:
- pass
- else:
- pass
switch
elif
代替,或者字典处理a or b
- counter = 1
- while counter <= 10:
- counter += 1
- print(counter)
- else:
- print('EOF') #循环结束的时候执行else
'运行
- for target_list in expression_list:
- pass
- else:
- pass #列表全部打完以后执行else,强制break结束时不会执行else
range
- for x in range(0, 10, 2): #范围,步长
- pass
- for x in range(10, 0, -2):
- printf(x, end=' | ')
-
- 一定要用for吗?
- a = [1,2,3,4,5,6,7,8]
- for i in range(0, len(a), 2):
- print(a[i], end=' | ')
- b = a[0:len(a):2]
- print(b)
__init__.py
),模块,类(用类把函数、变量组织起来)seven.c4
,子包__init__.py
的模块名就是包的名字- import c7 #同级,导入模块
- print(c7.a)
-
- import t.c7 #子包中
- print(t.c7.a)
-
- from t.c7 import a, def #导入变量、函数
- print(a)
-
- from t import c7 #导入模块
- print(c7.a)
-
- from t.c7 import * #导入所有变量和函数,能不用就不用
- __all__ = ['a', 'c']
- #在模块开头,改变*关于全部的定义
- #模块的内置属性
-
- #末尾加反斜杠可以换行, ()也可以换行
- from c7 import a, b\
- c
- from c7 import (a, b
- c)
__init__.py
__init__.py
内设置__all__
可以控制*
时导入的包内模块dir()
返回当前模块的变量列表dir(sys)
返回指定模块sys
的变量列表__doc__
存放模块注释信息__file__
存放文件路径- print('package: ' + (__package__ or 当前模块不属于任何包)) #当前模块不属于任何包
- print('name: ' + __name__) #__main__
- print('doc: ' + (__package__ or 当前模块没有文档注释))
- print('file: ' + __file__) #文件名c9.py
- if __name == '__main__':
- pass #作为可执行文件时才会执行
- #Make a both importable and executabl
python -m seven.c15
把c15按模块执行,命名空间(?)python seven\c15.py
路径方式package2.package4
,demo不是顶级包__name__
被设置成__main__
无法作为路径使用python -m demo.main
,此时相对导入可用,输出demo.package2.package4
- from .m3 import m
- from ...m5 import m
- # attempted relative import beyond top-level package
round(a, 2)
保留小数点后两位,同时四舍五入help(round)
查看内置函数import this
打印python之禅- def funcname(parameter_list):
- pass
- #1. 参数列表可以没有
- #2. return value None
'运行
[Previous line repeated 995 more times]
递归超过995次- import sys
- sys.setrecursionlimit(100)
- #设置最大递归层数
- #[Previous line repeated 95 more times]
'运行
- def damage(skill1, skill2):
- damage1 = skill1 * 3
- damage2 = skill2 * 2
- return damage1, damage2
-
- skill1_damage, skill2_damage = damage(3, 4)
- #用两个变量(有意义的变量名)存放两个返回值
- #序列解包
'运行
- d = 1, 2, 3
- print(type(d)) #tuple
-
- a, b, c = d #序列解包
- a, b = [1, 2, 3] #报错,用两个变量接收三个值
-
- a=b=c=1 #连续赋值√
c = add(3, 2)
c = add(y=3, x=2)
,不用固定实参的输入顺序print_student('lxxx', age=17)
可以不按参数列表顺序传入改变默认值print_student('lxxx', gender='nv', 17, college='xx')
- def demo(*param):
- print(param)
- print(type(param)) #tuple
-
- demo(1,2,3,4,5,6)
-
- a = (1,2,3,4,5)
- demo(a) #报错,传递进入的是一个元组
- demo(*a) #√ 类似解包,传入的是可变参数
-
- def demo(param1, param2=2, *param):
- print(param1)
- print(param2)
- print(param)
-
- demo('a', 1,2,3)
- #a
- #1 默认值参数在前,读完才读可变参数
- #(2,3)
-
- def demo(param1, *param, param2=2):
- print(param1)
- print(param2)
- print(param)
-
- demo('a', 1,2,3, 'param')
- #a
- #(1,2,3,'param') 可变参数会把剩余全部传入可变
- #2
-
- demo('a', 1,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。