有用代码段落
# 确定当前jupyter notebook创建笔记位置
import os
print(os.getcwd())
常量与变量
常量和变量相当于语言中的“名词”部分,功能是用来表示某些事物
常量:值不能被改变的量,包括数字、字符串和逻辑值
type()
函数用来查看变量/常量的数据类型
变量:值能被改变的量。并且python是非强制类型语言,没有固定的变量类型。
需要注意变量的命名规范:字母或下划线打头,由字母、下划线和数字组成
运算符与函数
运算符和函数相当于语言中的“动词”部分,用来表示某种操作
运算符:算数运算符/逻辑运算符/位运算符
运算符tips:**
表示乘方运算,python中的与或非用and
、or
、not
表示
函数:def
关键字定义,逗号分隔的参数是函数的input,return
关键字后接函数返回值
全局变量与局部变量:global
关键字用在函数内部,实现在函数内部访问和修改在函数外部定义的变量,而非重新定义一个新的全局变量
target = 13
## 尝试重新定义函数 check_sum, 此时函数参数中已不存在target
def check_sum(num1, num2):
global target
a = num1
b = num2
return a + b == target
控制流
控制流类似语言中的“介词”,连结动词和名词
控制流包括if-else
逻辑语句、while
循环语句、for-in
循环语句、break
停止语句、continue
继续语句
解决问题:给你任意五个整数和一个目标值target,找到这五个整数中和为target的那两个整数。
# 引入Finded变量作为是否找到结果的标志,用来控制break语句的使用
finded = False
for a in [2,3,7,11,15]:
for b in [2,3,7,11,15]:
if check_sum(a, b):
print(a, b)
finded = True
break
else:
pass
if Finded:
break
练习
按规定,某种电子元件使用寿命超过 1000 小时为一级品。已知某一大批产品的一级品率为 0.2,现在从中随机地抽查 20 只。使用 Python 计算 20 只元件中恰好有 k 只 (k=0,1,…,20) 为一级品的概率为?
解决思路是输出20个概率结果为一个part(main()函数),得到每种次品出现情况对应概率为一个part(p_xk()函数),计算组合项所需阶乘为一个part(multiple()函数)
tips:乘方运算符的使用
# 定义阶乘函数计算二项分布中的组合项
def multiple(x):
result = 1
while x != 0:
result = result * x
x = x-1
return result
# 定义二项分布计算概率
def p_xk(k):
# 计算得到组合项
temp = multiple(20) / (multiple(k) * multiple(20-k))
# 计算概率
p = (0.2**k)*(0.8**(20-k))
return temp*p
# 根据二项分布计算概率
k = 0
while k != 21:
print('P{X=',k,'} = ', p_xk(k))
k = k+1
ps:我的碎碎念:现在网络上学习人工智能的资料太多了,光是选择用什么资料学,按照哪个路线学,就需要花很多的时间精力。特别是像我这样意志不坚定的人,很容易就陷入“秘籍”思维,总在想找到最好的学习路线和学习资料,迟迟没有开始。去年就了解到了datawhale的人工智能培养方案,当时就想过按照这个路线来学习,但自己迟迟没有下定决心,迟迟拖延。最近也看了很多资料,回过头来发现还是这套方案好,每一个方向的资料都列得很清楚,不光有理论还有可以时间的数据科学竞赛,并且datawhale开源社区也一直在维护这套培养方案!
写博客真的有助于自己学习,并且在学习的过程中为了书写学习笔记,自己会有意识地去理清知识脉络,并且博客写完之后可视的摆在眼前的一个一个的知识点,会带来踏实感!
学习资料
- datawhale发布的learn-python-the-smart-way:https://github.com/datawhalechina/learn-python-the-smart-way