浅学python——流程控制

流程控制

深浅拷贝

首先我们先了解一个类型:可变与不可变。他的意思就是说如果一个变量的值发生改变,他的id是否会改变,若改变就是可变类型,若不改变就是不可变类型。

简单来说就是如果这个变量是容器类型,举个例子,列表类型。那么对于列表来说,它仅仅是用来存储实际值地址的容器,如果说我们想改变列表中的内容,我们只是将要更改的值的地址填入这个容器中就可以了。换句话来说就是在旧瓶子的瓶子中装入新的酒,那这瓶酒就成为其他酒了,即使他的瓶子没有改变。

那了解完这知识点后,我们就来看看什么是深浅拷贝:

首先,拷贝就是将某一东西复制一份,而不是引用两次。举个例子就是我做了一个蛋饼,我再照着他做了另一份,这就是拷贝,为不是说给他取名为鸡蛋饼。虽然看着我有两种饼,但他们实际却是同一个。

  1. 浅拷贝:我们知道只有容器类型的变量才是可变类型,其余都是不可变类型,因此我们只需要关注容器类型。浅拷贝就是只将第一层瓶子换成新的瓶子,如果里面还有,这个瓶子是不会改变的。
  2. 深拷贝:这种方法就是将里面所有的容器更换为新的,其余不变。

条件判断

if+条件,当条件为真时就执行该判断条件下的语句,如果为假,那么就跳过这一步的判断,如果有elif或者else就会,就会进入这些判断分支。

循环控制

1.while 循环
while循环有三种,最直接的就是while+条件+循环内容,第二种就是前置do_while,还有一种就是后置do_while。第一种就是当条件为真时一直重复循环内容,第二种和他差不多。但是注意到第三种,他是先执行循环内容一次,在进行判断条件的判断。

2.for 循环
他这种循环就是遍历完条件中的所有值后就停止循环。我们要注意的是如果他后面的遍历条件是字典类型,我们知道对于字典来说,他是key与value一一对应的,那么在这个遍历中,它默认是将标签取出。

3.循环退出
只有当条件不满足或者当运行到break时才会退出。但我们要注意的是,break只能退出当前的循环,如果说有多重循环的嵌套,那么我们就需要多个break退出。

4.循环跳步
continue函数,他的意思就是当程序运行到continue时,他会跳过当前这一次的循环,直接进入下一次的循环。

纸上得来终觉浅,绝知此事要躬行,那么我们就通过下面几个实例来更深入的了解。

例一:BMI的计算
他是很普通的一个条件判断,计算出BMI的值后,判断该值位于那个区间就输出相应的标签。

w=eval(input('请输入体重:'))
h=eval(input('请输入身高:'))
BMI=w/h**2
if BMI<18.5:
    print('偏瘦')
elif 18.5<=BMI<25.0:
    print('正常')
elif 25<=BMI<30:
    print('偏胖')
else:
    print('肥胖')

例二:圆周率的计算
先验条件:我们假设这是一个单位圆,他的公式我们也已知,来计算这个圆周率。
方法:首先我们假设这是个单位圆,那么也就是说,这个圆的面积就是圆周率,我们只需要知道这个面积就是圆周率。那么,我们计算面积如果不能用到圆周率,那么我们就采用随机撒点的方法来近似这个面积。我们可以采用四分之一的面积这样正方形的面积就是1,判断随机点是否落在圆内也更方便。
那么我们就来看看程序吧。

from random import random


DARTS=1000*1000      #当前区域内抛洒点的总数量---蒙特卡洛法

hits=0.0             #当前在圆内部点的数量



#开始抛点
for i in range(1,1+DARTS):
    x,y=random(),random()       #点的位置
    dist=pow(x**2+y**2,0.5)     #两点之间距离公式 其中pow 为次方函数,0.5次方就是开根号
    if dist<=1.0:               #判断这个点是否在圆内
        hits=hits+1
pi=4*(hits/DARTS)               #圆内圆外的点的比值相当于面积的比值,也就相当于间接利用面积公式
print('圆周率是:{}'.format(pi))


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值