查看原文
其他

再不偷偷为夏天做准备就晚了(Python第8天 for循环)

闫续文 Stata and Python数据分析 2022-03-15

爬虫俱乐部之前推出的线下培训,得到了各位老师的一致好评。为了更加方便大家学习,满足更多Stata用户的学习需求,爬虫俱乐部已隆重推出在线直播课程,请大家奔走相告!课程报名链接:https://ke.qq.com/course/286526#tuin=9735fd2d,详情见推文《爬虫俱乐部隆重推出网上直播课程第一季

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

好消息:爬虫俱乐部即将推出研究助理供需平台,如果您需要招聘研究助理(Research Assistant or Research Associate),可以将您的需求通过我们的公众号发布;如果您想成为一个RA,可以将您的简历发给我们,进入我们的研究助理数据库。帮我们写优质的推文可以提升您被知名教授雇用的胜算呀!

立夏过后,武汉正式地迎来了一年好几度的夏天。看着校园里成群结队的超短裙和热裤,即使是像我这样一晒就黑一个冬天都不怎么能捂白的非洲girl也是十分心动啊,可是出于对紫外线的恐惧,在把自己裹的严严实实的同时,还要每天关注天气预报以便决定要不要涂防晒霜。在“防晒很重要”“紫外线是万恶之源”等主流护肤言论下,我决定只要有一点点太阳的存在就认真涂防晒!如果我们按照紫外线强度由高到低把天气分为晴天、多云、阴天、雨天四类,那么只要天气预报是紫外线强度较高的晴天多云,包包里就要一直装着防晒霜啦。这样一个简单的循环我们要如何通过Python语言来表达呢?

在之前的推文《如果余生是你,我就......》中,我们简单介绍了for循环,它可以实现对集合中的每一个元素进行循环操作,以便处理重复性的任务。今天我们就正式来介绍for循环和它背后的强大威力,它的语法结构如下:

for item in iterable:    do-something-with-item

这里的iterable是供for循环遍历的对象,即在每次循环中,item都会被赋值为iterable中的一个元素。我们称iterable可迭代对象,这个名字有点怪,但就目前我们只需要知道,列表(list)字典(dict)元组(tuple)甚至字符串(str)都是可迭代对象。我们先来看一个简单的例子:

for letter in 'abcdefg':    print(letter)

对字符串’abcdefg’使用for循环,我们便可以打印出字符串中的每个字母。现在回到推文一开始所提出的问题,我们试着使用for循环来解决。

首先我们生成一个名为“weatherlist”的列表,元素为1、2、3、4的随机排列,程序如下:

import random weatherlist= [] i= 0
while i< 10: newunit=int(random.random() * 4 + 1)   weatherlist.append(newunit) i= i + 1

其中,random是一个关于生成随机数的包,我们生成一个变量“newunit”,通过random.random()生成一个0-1的随机数,将该数乘以4再加1并取整得到变量“newunit”的取值:1-4的随机整数。我们使用while循环,向列表“weatherlist”中增加10个取值为1-4的随机整数,作为我们随机生成的共10天的天气状况。

接着,我们生成一个名为“name”的列表,内容分别为按照紫外线强度由高到低排列的四种天气名称“晴天”、“多云”、“阴天”、“雨天”。在接下来的for循环中,“weatherlist”1、2、3、4的取值就分别对应了“晴天”、“多云”、“阴天”、“雨天”这四种天气。如果天气为“晴天”和“多云”,即“weather”小于3,我们就输出该取值在“name”中所对应的天气+’出门记得涂防晒哦’,程序如下:

name= ['晴天','多云','阴天','雨天']
for
weather in weatherlist:  
    if weather < 3:        print(name[weather - 1] + '出门记得涂防晒哦')

我们看到,在随机生成的10天天气中,有2天多云,2天晴天,这4天紫外线较强的天气中Python都提醒我们出门要记得涂防晒,这样我们的目的也就达到啦。

最后呢,我们来写一个双重循环,每次输出一种水果和一种饮料:

fruits= ['apple','banana','orange'] beverages= ['cola','coffee','milk']      
for unit in fruits:    
   for unit in beverages:        print(unit+ ' ' + unit)

但是我们发现,输出结果中只有饮料而没有水果,这是为什么呢?我们要注意,在双重for循环中所使用的遍历对象不能重名,上面的程序中我们都使用了“unit”作为变量名称,从而使得“unit”赋值混乱。如果想要得到正确的输出结果,我们只需要进行不同的命名就好啦,比如我们把上述两个“unit”分别改为“i”“j”

PS:in 是for 循环的关键词,在命名一些变量的时候,不要使用in作为普通变量的名字。

PPS:类似于list这样的词也最好不要作为变量名。

好啦,今天的Python学习到这里就结束啦~

 

注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~


                                   


             文字编辑:赵宇亮

  技术总编:刘贝贝


往期推文推荐:

1.爬虫俱乐部新版块--和我们一起学习Python

2.hello,MySQL--Stata连接MySQL数据库

3.hello,MySQL--odbcload读取MySQL数据

4.再爬俱乐部网站,推文目录大放送!

5.用Stata生成二维码—我的心思你来扫

6.Hello,MySQL-odbc exec查询与更新

7.Python第一天

8.Python第二天

9.事件研究大放送

10.爬虫俱乐部隆重推出网上直播课程第一季



关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存