社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python数据科学实践 | 控制流

狗熊会 • 4 年前 • 720 次点击  
     ▼
更多精彩推荐,请关注我们



大家好,基于Python的数据科学实践课程又到来了,大家尽情学习吧。本期内容主要由程茜与政委联合推出。


控制流


Python语句与我们熟悉的C、R等高级语言一样,程序由3种基本结构组成,分别是顺序结构分支结构循环结构

01
顺序结构

                               

顺序结构指的是做一件事情是按顺序完成每个步骤的。

例如请答题:请问把一头大象装进冰箱里的流程是什么?


对,就是打开冰箱,把大象装进去,最后关上冰箱。从这个例子中,大家应该从这个做法中理解了什么是顺序结构了吧!就是我们做分析的一个逻辑顺序。

例1

price1=float(input('请输入团购价')) # 请输入团购价  
price2=float(input('请输入市场价')) # 请输入市场价
Z=price1/price2 # 计算折扣
print("折扣是",Z) #输出折扣

以计算某家火锅团购的打折力度这一顺序语句为例,该语句就是按照从上到下的顺序,一条语句一条语句的执行,是最基本的结构。

02
分支结构if-else


分支结构指的是根据条件判断结果而选择不同向前执行路径的一种运行方式。例如,每次做完团购活动以后,商家们都会复盘,看看本次营销效果如何。其中,购买人数自然是一个观测点。如果购买人数大于50人,说明还不错。否则,下次我们需调整团购方案,再接再厉!

例2

result=int(input('本次火锅团购购买人数?:(如果有请填写个数)'))
if result > 50:
    print("本次活动营销效果好!")
else:    
    print("下次明天再接再厉")

这时有人又说50人就说效果好吗?一般般啦。于是老板说评价标准修改一下,大于150人,效果好;50人到150人之间都算一般,团购活动微调;50人以下,需要分析原因,活动内容还需再调研整改。这里面就涉及了多分支结构 if-elif-else,继续来段代码 实现一下。

例3

result=int(input('本次火锅团购购买人数多r了吗?:(如果有请填写个数)'))
if result >150:
    print("效果好棒!")
elif 50<= result150:
    print("活动内容微调")
else:
    print('内容整改,再接再厉!')


03
循环结构


在数据科学的实际项目中,经常会遇到很规律的重复操作,所以在程序中就需要重复某条语句。Python中常用for和while语句来完成循环。


(1) 遍历循环:for

for循环的格式:

 for in :

     


这里的对象可以是字符串,列表,元组,字典,还可以是文件、range()函数等。

例如,我们需要把coupon数据集中的'团购活动ID'一个一个打印出来。

例4

for i in coupon['团购活动ID']:
    print (i)

另外,for 循环经常和range函数一起使用,使用range()函数可以指定语句块的循环次数,基本使用方法如下:

for in range(初始值,终止值,步长):

       

继续上面的例子,把coupon数据集中的'团购活动ID'是偶数的打印出来。

例5

for i in range(0,len(coupon['团购活动ID']),2):
    print(i)

for循环除了以上的常规操作,还可以与前面讲述到的列表结合一起用,可以使得语句更加简洁。下面给大家介绍一个省事的方法来做循环,列表生成式。列表生成式结构如下:

 [表达式 for i in 序列]

下面例子是通过列表生成式提取coupon数据集中的团购时间信息。

例6

coupon['到期时间']=pd.to_datetime(coupon['到期时间']) #把每个团购的到期时间转换成时间格式 
coupon['到期时间'].dtypes #返回值 dtype('
year1=[i.year for i in coupon['到期时间']] # 提取每个'到期时间'的年
month1=[i.month for i in coupon['到期时间']]# 提取每个'到期时间'的月
day1=[i.day for i in coupon['到期时间']]# 提取每个'到期时间'的月日
weekday1=[i.weekday_name for i in coupon['到期时间']] # 提取每个'到期时间'的星期

    

(2) while循环

while循环所做的事和if语句类似,是去检查一个布尔表达式的真假。不一样的是它下面的代码块不是只被执行一次,而是执行完后再跳回while顶部,不停的重复,直到出现False为止。

语法:

while 条件或表达式:

         语句...

else:

         语句...

例如,计算10以内自然数之和。

例7

x=0;m=0
while x<11:
    m+=x
    x+=1
print(m) #返回值55


好了今天就讲到这里。

作业:请大家导入shops_nm.xlsx数据,利用for循环语句把数据中的店铺信息存入一个列表中。


往期精彩回顾
初步搭建数据科学工作环境

Conda的使用

Spyder入门

Jupyter入门

Markdown

简单读写数据

数据类型

数据结构


“阅读原文”即可下载数据!
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37292
 
720 次点击