整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript基础知识16-分支语句

喽,大家好,我是雷工。

今天学习JavaScript基础知识的分支语句,以下为学习笔记。

1、程序三大流程控制语句

○写几句就从上往下执行几句,这种叫做顺序结构;

○有时要根据条件选择执行代码,这种叫分支结构;

○某段代码被重复执行,就叫循环结构;

2、分支语句

○分支语句可以让我们有选择性的执行想要执行的代码

○分支语句包含:

→ if分支语句

→ 三元运算符

→ switch语句

2.1、if分支语句

● if语句有三种使用:单分支、双分支、多分支

● 单条件分支语句:程序如果执行的时候,如果条件成立就执行某一行代码,如果条件不成立则执行其他代码

使用语法:

if(条件)
{
	 满足条件要执行的代码
}

▶ 小括号内的条件为true时,进入大括号里执行代码。

▶ 小括号内的结果若不是布尔类型时,会发生隐式转换转换为布尔类型。

▶ 如果大括号内只有一个语句,大括号可以省略,但是,一般不提倡这么做~

双分支if语法

if(条件)
{
 	满足条件要执行的代码
}
else
{
 	不满足条件时要执行的代码
}

语法解释:

1>程序先判断if中的条件是否成立(true),如果条件成立,则执行if后面对应的代码,else中的代码不会执行。

2>如果if中的条件不成立(False),程序只执行else后{}中的代码,if后{}内的代码不会执行。

多条件分支语句if:

应用场景:当有多个结果的时候,比如学习成绩可以分为:优秀、良好、及格、不及格四个选项。

语法:

if(条件1)
{
 满足条件1要执行的代码1
}
else if(条件2)
{
 满足条件2要执行的代码2
}
else if(条件3)
{
 满足条件3要执行的代码3
}
else
{
 以上条件均不满足时执行代码n
}

语法说明:

▶ 先判断条件1,若满足条件1就执行代码1,其他代码统统不执行;

▶ 若不满足则按顺序向下判断条件2,满足条件2执行代码2,其他代码不执行;

▶ 若依然不满足继续往下判断,依次类推 ;

▶ 若以上条件都不满足,执行else里的代码n ;

▶ 注:可以根据实际需要写N个条件,但这里演示只写2个;

单条件分支语句和多条件分支语句总结:

a)不管是单条件分支语句,还是多条件分支语句,else都可以省略(前提else中没有代码)

b)条件分支语句,如果只有一行代码,则{}可以省略。

例:if(3>0)alert("雷工笔记");

c)分支语句可以相互嵌套。

2.2、三元表达式

就是单条件分支语句的另外一种写法

语法:

条件 ? 代码1 : 代码2;

语法说明:

a)判断条件的真假,如果为真,则执行代码1,后面的代码2不执行;

b)如果条件不成立,则执行代码2,前面的代码1不执行;

● 一般用来取值

2.3、switch分支语句

switch 分支语句就是多条件分支语句的另外一种写法

语法:

switch(数据/变量)
{
	 case 值1:
	 代码1;
	 break;
    
	 case 值2:
 	代码2;
	 break;
    
	 case 值3:
 	代码3;
 	break;
    
 	default:
	 代码n;
	 break;
}

释义:

▶ 找到跟小括号里数据/变量全等的case值,并执行里面对应的代码

▶ 若没有全等 === 的则执行 default里面的代码

▶ 例:数据若跟值1全等,则执行代码1

注意事项:

1>. switch case语句一般用于等值判断,不适合于区间判断;

2>. switch case一般需要配合break关键字使用 没有break会造成case穿透(default后面的break可以省略);

3>.什么情况下使用switch语法?什么情况下使用多条件分支if语句?

a)在任何情况下都可以使用switch语句或者多条件分支语句;

b)如果变量的值是某些固定的值,推荐使用switch;

示例1:一年有12个月,1月-12月;

示例2:一年有4个季节,春,夏,秋,冬

c)如果变量的值是一个范围,推荐使用if多分支语句

示例:

者:Roman Orac
鱼羊 编译整理
量子位 报道 | 公众号 QbitAI

数据分析,如何能错过 Pandas

现在,数据科学家 Roman Orac 分享了他在工作中相见恨晚的 Pandas 使用技巧。

了解了这些技巧,能让你在学习、使用 Pandas 的时候更加高效。

话不多说,一起学习一下~

Pandas实用技巧

用 Pandas 做数据分析,最大的亮点当属 DataFrame。不过,在展示成果的时候,常常需要把 DataFrame 转成另一种格式。

Pandas 在这一点上其实十分友好,只需添加一行代码。

DataFrame 转 HTML

如果你需要用 HTML 发送自动报告,那么 to_html 函数了解一下。

比如,我们先设定这样一个 DataFrame:

import numpy as np
import pandas as pd
import random

n = 10
df = pd.DataFrame(
    {
        "col1": np.random.random_sample(n),
        "col2": np.random.random_sample(n),
        "col3": [[random.randint(0, 10) for _ in range(random.randint(3, 5))] for _ in range(n)],
    }
)

用上 to_html,就可以将表格转入 html 文件:

df_html = df.to_html()
with open(‘analysis.html’, ‘w’) as f: f.write(df_html)

与之配套的,是 read_html 函数,可以将 HTML 转回 DataFrame。

DataFrame 转 LaTeX

如果你还没用过 LaTeX 写论文,强烈建议尝试一下。

要把 DataFrame 值转成 LaTeX 表格,也是一个函数就搞定了:

df.to_latex()

DataFrame 转 Markdown

如果你想把代码放到 GitHub 上,需要写个 README。

这时候,你可能需要把 DataFrame 转成 Markdown 格式。

Pandas 同样为你考虑到了这一点:

print(df.to_markdown())

注:这里还需要 tabulate 库

DataFrame 转 Excel

说到这里,给同学们提一个小问题:导师/老板/客户要你提供 Excel 格式的数据,你该怎么做?

当然是——

df.to_excel(‘analysis.xlsx’)

需要注意的是,如果你没有安装过 xlwtopenpyxl 这两个工具包,需要先安装一下。

另外,跟 HTML 一样,这里也有一个配套函数:read_excel,用来将excel数据导入pandas DataFrame。

DataFrame 转字符串

转成字符串,当然也没问题:

df.to_string()

5个鲜为人知的Pandas技巧

此前,Roman Orac 还曾分享过 5 个他觉得十分好用,但大家可能没有那么熟悉的 Pandas 技巧。

1、data_range

从外部 API 或数据库获取数据时,需要多次指定时间范围。

Pandas 的 data_range 覆盖了这一需求。

import pandas as pd
date_from = “2019-01-01”
date_to = “2019-01-12”
date_range = pd.date_range(date_from, date_to, freq=”D”)
print(date_range)

freq = “D”/“M”/“Y”,该函数就会分别返回按天、月、年递增的日期。

2、合并数据

当你有一个名为left的DataFrame:

和名为right的DataFrame:

想通过关键字“key”把它们整合到一起:

实现的代码是:

df_merge = left.merge(right, on = ‘key’, how = ‘left’, indicator = True)

3、最近合并(Nearest merge)

在处理股票或者加密货币这样的财务数据时,价格会随着实际交易变化。

针对这样的数据,Pandas提供了一个好用的功能,merge_asof

该功能可以通过最近的key(比如时间戳)合并DataFrame。

举个例子,你有一个存储报价信息的DataFrame。

还有一个存储交易信息的DataFrame。

现在,你需要把两个DataFrame中对应的信息合并起来。

最新报价和交易之间可能有10毫秒的延迟,或者没有报价,在进行合并时,就可以用上 merge_asof。

pd.merge_asof(trades, quotes, on=”timestamp”, by=’ticker’, tolerance=pd.Timedelta(‘10ms’), direction=‘backward’)

4、创建Excel报告

在Pandas中,可以直接用DataFrame创建Excel报告。

import numpy as np
import pandas as pd

df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=["a", "b", "c"])

report_name = 'example_report.xlsx'
sheet_name = 'Sheet1'
writer = pd.ExcelWriter(report_name, engine='xlsxwriter')
df.to_excel(writer, sheet_name=sheet_name, index=False)

不只是数据,还可以添加图表。

# define the workbook
workbook = writer.book
worksheet = writer.sheets[sheet_name]
# create a chart line object
chart = workbook.add_chart({'type': 'line'})
# configure the series of the chart from the spreadsheet
# using a list of values instead of category/value formulas:
#     [sheetname, first_row, first_col, last_row, last_col]
chart.add_series({
    'categories': [sheet_name, 1, 0, 3, 0],
    'values':     [sheet_name, 1, 1, 3, 1],
})
# configure the chart axes
chart.set_x_axis({'name': 'Index', 'position_axis': 'on_tick'})
chart.set_y_axis({'name': 'Value', 'major_gridlines': {'visible': False}})
# place the chart on the worksheet
worksheet.insert_chart('E2', chart)
# output the excel file
writer.save()

注:这里需要 XlsxWriter 库

5、节省磁盘空间

Pandas在保存数据集时,可以对其进行压缩,其后以压缩格式进行读取。

先搞一个 300MB 的 DataFrame,把它存成 csv。

df = pd.DataFrame(pd.np.random.randn(50000,300))
df.to_csv(‘random_data.csv’, index=False)

压缩一下试试:

df.to_csv(‘random_data.gz’, compression=’gzip’, index=False)

文件就变成了136MB。

gzip压缩文件可以直接读取:

df = pd.read_csv(‘random_data.gz’)

这一份Pandas技巧笔记,暂且说到这里。各位同学都做好笔记了吗?

Talk is cheap, show me the code。学会了,就用起来吧

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

器之心报道

机器之心编辑部

只要你有纯文本编辑器,加上一条语句,瞬间它就可以成为 Markdown 编辑器。


Markdeep 是一个用来写纯文本的插件,它能以 Markdown 的语法与渲染方式纯文本,并在网页上展示。同时,除了 Markdown 语法,Markdeep 还额外支持图表、数学方程等扩展能力。

项目主页:https://casual-effects.com/markdeep/

我们先看看效果,如下左边是纯文本编辑器的编辑页面,右边是在浏览器上的渲染效果:


Markdeep 非常容易使用,它也不需要安装插件或联网。如上所示只要在纯文本最后加上「<!—Markdeep→」那一行的表达式,它就可以变成一个地道的 Markdown 编辑器。Markdeep 不需要额外安装任何东西,也不需要导出、编译等杂七杂八的过程。

看着 Markdeep 很简单,但它的功能却不少,一点也不逊色于 Typora 等正统的 Markdown 编辑器。不论我们是写项目的 README 文档、实验报告,还是要做 PPT 或写论文,它都能满足。该项目提供了很多示例,例如生成的 PPT 是什么样的,后文会具体展示。

开源代码

Markdeep 是开源的,所以可以直接下载和修改源代码文件 markdeep.js。整个编辑器就是一个 JavaScript 脚本,上面定义了各种格式与渲染方式。作者表示,目前他正研究该如何有效降低脚本文件大小。

用于表格处理的部分代码,整个脚本有超过 5000 行代码。

脚本源码地址:https://casual-effects.com/markdeep/latest/markdeep.js

作者表示,这个项目本来就是一个业余项目,它并不会有完整的技术支持。不过只要提交的 Bug 足够具体,作者都会完善它。此外,该项目还会经常加入一些新特性,从 2015 年 10 月份的第一版,到今年 2 月份的最新版,这个编辑器已经维护了很长时间。

Markdeep 怎么用

如果你需要创建一个 Markdeep 的文件,只需要打开任意一个文本编辑器,然后开始编辑。完成文本编辑工作后,只需要在其底部写下一个简单的代码就行了。然后,将这个文档保存为纯文本文件,使用 .md.html 为扩展名。

<!-- Markdeep: --><style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js" charset="utf-8"></script><script src="https://casual-effects.com/markdeep/latest/markdeep.min.js" charset="utf-8"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script>

如果你希望在源文档中使用 Unicode,则需要在文档顶部先加上这句话:

<meta charset="utf-8">

想要看看效果?你可以将文本拖入浏览器或双击它。即使网络离线也可以查阅文档。如果不想因为离线而失去格式,可以将 markdeep.min.js 文件和文档保存在一个文件夹中。

如果想要看看 Markdeep 原始文本,在文件 URL 最后加上「?noformat」即可。

上手示例

小编随手测试了几个典型 Markdown 语法,比如:代办列表、自动链接、表格、内联图片、代码。与此同时,LaTeX 的数学表达式和图形也能直接设计,而不需要任何插件。具体效果可参考:


简而言之,配备完善,对于熟悉 Markdown 的小伙伴来说,用起来会十分顺手及方便。这意味着,在有网的情况下,随意拎一个文本编辑器后,就再也没有人能拦得了你使用 Markdown 了。与此同时,时时预览效果也非常简便,只需要在文本编辑器里修改,浏览器中刷新下便可呈现最新效果。

Markdeep 能干什么

只要是 Markdown 支持的,Markdeep 就能够支持,它在业界和学术界能得到广泛使用。如下所示,各种题材与格式的文档都能用 Markdeep 完成:

  • API 文档
  • 教学大纲
  • 游戏设计文件
  • 家庭作业
  • 课程 PPT
  • 软件库网站
  • 个人博客
  • 简历
  • 论文

看起来 Markdeep 似乎什么都能做,项目作者同样也展示了这些方面的效果图:


Markdeep 制作的 PPT。

Markdeep 制作的个人简历。

总之,除了使用方便、展示炫酷,Markdeep 的功能也是非常强大。正如其它开发者所强调的,Markdeep 是能制作简单图表的 Markdown 工具,它以一种「ASCII Art」的方式用纯文本制作出图形,并且不用渲染也非常明晰。