循环是任何一种编程语言的基本设置,是进行批量操作的基础,而条件语句是进行分支运算的基础,Python与R有着各自不同的循环语句与条件语句语法,也存在着一些相同的地方。

Python

1.for循环

'''通过for循环对列表进行遍历'''
list1 = [i for i in range(10)]
for i in range(10):
print(list1[i])
0
1
2
3
4
5
6
7
8
9 '''通过for循环对集合进行遍历'''
set1 = set([i for i in range(10)])
for i in set1:
print(i)
0
1
2
3
4
5
6
7
8
9 '''for循环在列表解析中的应用'''
list = [str(i) for i in range(10)]
print(list)
['', '', '', '', '', '', '', '', '', '']

*for循环只能对可遍历的对象进行操作

2.while循环

i = 10
while(i>=0):
print(i)
i-=1
10
9
8
7
6
5
4
3
2
1

3.if-else

import time
import numpy.random
random.seed(int(time.clock()))
now = random.randint(1,10,1)
if now >= 5:
print('big')
else:
print('small')
big

4.列表解析中的if语句

'''利用条件列表解析生成指定范围内所有偶数
list = [i for i in range(10) if i%2 == 0]
print(list)
[0, 2, 4, 6, 8]

5.条件表达式(三元操作符)

x, y = 3, 5
smaller = x if x<y else y
print(smaller)
3

6.np.where()

import numpy as np
list = [i for i in range(10)]
for i in range(10):
np.where(list[i]%2 == 0,print('偶数'),print('奇数'))
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数
偶数
奇数

R

1.for循环

> list = c()
> for(i in 1:20){list = c(list,i)}
> list
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2.while

> i = 10
> while(i>0){print(i)
+ i = i-1}
[1] 10
[1] 9
[1] 8
[1] 7
[1] 6
[1] 5
[1] 4
[1] 3
[1] 2
[1] 1

3.if-else

> i = 1:20
> for(k in i){if(k%%2 == 0){print(k)}
+ else{print('error')}}
[1] "error"
[1] 2
[1] "error"
[1] 4
[1] "error"
[1] 6
[1] "error"
[1] 8
[1] "error"
[1] 10
[1] "error"
[1] 12
[1] "error"
[1] 14
[1] "error"
[1] 16
[1] "error"
[1] 18
[1] "error"
[1] 20

4.ifelse

> for(k in i){ifelse(k%%2 == 0,print('偶数',quote=FALSE),print('奇数',quote=FALSE))}
[1] 奇数
[1] 偶数
[1] 奇数
[1] 偶数
[1] 奇数
[1] 偶数
[1] 奇数
[1] 偶数
[1] 奇数
[1] 偶数

(数据科学学习手札02)Python与R在循环语句与条件语句上的异同的更多相关文章

  1. (数据科学学习手札58)在R中处理有缺失值数据的高级方法

    一.简介 在实际工作中,遇到数据中带有缺失值是非常常见的现象,简单粗暴的做法如直接删除包含缺失值的记录.删除缺失值比例过大的变量.用0填充缺失值等,但这些做法会很大程度上影响原始数据的分布或者浪费来之 ...

  2. (数据科学学习手札47)基于Python的网络数据采集实战(2)

    一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集 ...

  3. (数据科学学习手札80)用Python编写小工具下载OSM路网数据

    本文对应脚本已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们平时在数据可视化或空间数据分析的过程中经常会 ...

  4. (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)

    一.简介 接着几个月之前的(数据科学学习手札31)基于Python的网络数据采集(初级篇),在那篇文章中,我们介绍了关于网络爬虫的基础知识(基本的请求库,基本的解析库,CSS,正则表达式等),在那篇文 ...

  5. (数据科学学习手札32)Python中re模块的详细介绍

    一.简介 关于正则表达式,我在前一篇(数据科学学习手札31)中已经做了详细介绍,本篇将对Python中自带模块re的常用功能进行总结: re作为Python中专为正则表达式相关功能做出支持的模块,提供 ...

  6. (数据科学学习手札90)Python+Kepler.gl轻松制作时间轮播图

    本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 Kepler.gl作为一款强大的开源地理信 ...

  7. (数据科学学习手札55)利用ggthemr来美化ggplot2图像

    一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原 ...

  8. (数据科学学习手札40)tensorflow实现LSTM时间序列预测

    一.简介 上一篇中我们较为详细地铺垫了关于RNN及其变种LSTM的一些基本知识,也提到了LSTM在时间序列预测上优越的性能,本篇就将对如何利用tensorflow,在实际时间序列预测任务中搭建模型来完 ...

  9. (数据科学学习手札69)详解pandas中的map、apply、applymap、groupby、agg

    *从本篇开始所有文章的数据和代码都已上传至我的github仓库:https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 pandas提供了很多方 ...

随机推荐

  1. June 10th 2017 Week 23rd Saturday

    A lot of things, we can be touched, but we can not shed tears. 很多事情,我们可以感动,却不能流泪. Sometimes I was to ...

  2. QT学习之窗口右键菜单

    #QT学习之窗口右键菜单 QWidget 及其子类都有右键菜单,主要因为其有两个与右键菜单相关联的函数: Qt::ContextMenuPolicy contextMenuPlicy() const ...

  3. 管道(Pipelines)模型

    Pipeline模型最早被使用在Unix操作系统中.据称,假设说Unix是计算机文明中最伟大的发明,那么,Unix下的Pipe管道就是尾随Unix所带来的还有一个伟大的发明[1].我觉得管道的出现,所 ...

  4. 【洛谷5280】[ZJOI2019] 线段树(线段树大力分类讨论)

    点此看题面 大致题意: 给你一棵线段树,两种操作.一种操作将每棵线段树复制成两个,然后在这两个线段树中的一个上面进行\(Modify(l,r)\).另一种操作询问所有线段树的\(tag\)总和. 大力 ...

  5. Manacher算法模板

    题目描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 输入输出格式 输入格式: 一行小写英文字符a,b,c...y,z组成的字符串S 输出格 ...

  6. 郑州集训day1自闭有感

    被拉到郑州培训了 考了一上午莫名自闭 帮助慎老师拿到\(rk1\)非常开心 简述一下题目吧 T1.まんふは函数 原题地址 考原题还行 据说是\(Huffman\)树 在成爷爷的再三讲解下,我终于明白了 ...

  7. 机器学习基础(HGL的机器学习笔记1)

    统计学习:统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,统计学习也成为统计机器人学习[1]. 统计学习分类:有监督学习与无监督学习[2]. 统计学习三要素:模型 ...

  8. Java集合框架之Set接口

     1.Set接口不记录元素添加顺序的误区 public  void setDemo(){        Set<String> set1 = new HashSet<>();  ...

  9. 统计iOS产品不同渠道的下载量

    如何统计iOS产品不同渠道的下载量? 一.前言 在开发过程中,Android可能会打出来很多的包,用于标识不同的商店下载量.原来觉得苹果只有一个商店:AppStore,如何做出不同来源的统计呢?本篇文 ...

  10. c# 动态编译继承接口

    c#里面的动态编译我就不讲了,主要的都有了.如果不熟悉我推荐博文 https://www.cnblogs.com/maguoyong/articles/5553827.html 标准的动态编译 这里主 ...