第一个IronPython程序(之一)
这是一个完整的, 可执行的 IronPython程序。
它可能对您来说根本无法理解。别着急, 我们将逐行的进行剖析。不过首先把代码通读一遍, 看一看是否有些可以理解的内容。
例2.1 first.py 这个程序来自IronPython的例子,添加了一点内容
def add(a, b):
"add(a, b) -> returns a + b"
return a + b
def factorial(n):
"factorial(n) -> returns factorial of n"
if n <= 1: return 1
return n * factorial(n-1)
def BuildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
return "".join(["%s=%s" % (k, v) for k, v in params.items()])
hi = "Hello from IronPython!"
if __name__ == "__main__":
myParams = {"server":"shanyou.zhang",
"database":"pubs",
"uid":"sa",
"pwd":"secret"
}
print BuildConnectionString(myParams)
print add(hi,"Zhangshanyou")
print factorial(100)
现在运行一下这个程序, 看一看结果是什么。在命令行中切换到Tutorial目录,执行命令ipy first.py
first.py输出的结果如下:
server=shanyou.zhang;database=pubs;uid=sa;pwd=secret
Hello from IronPython!Zhangshanyou
93326215443944152681699238856266700490715968264381621468592963895217599993229915
608941463976156518286253697920827223758251185210916864000000000000000000000000
与其它大多数语言一样IronPython 有函数, 但是它没有像 C++ 一样的独立的头文件;或者像 Pascal 一样的分离的 interface/implementation 段。 一旦需要函数时, 像下面这样声明即可:
def BuildConnectionString(params):
首先, 函数声明以关键字 def 开始, 接着为函数名, 再往后为参数, 参数放在小括号里。 多个参数之间 (这里没有演示) 用逗号分隔。
其次, 函数没有定义返回的数据类型。 IronPython 不需要提定返回值的数据类型;甚至不需要指定是否有返回值。实际上, 每个 IronPython 函数都返回一个值;如果函数执行过 return 语句, 它将返回指定的值, 否则将返回 None ( IronPython 的空值) 。
最后需要指出的是, 在 IronPython 中参数, params 不需要指定数据类型。 IronPython 会判定一个变量是什么类型, 并在内部将其记录下来。
可以通过给出一个 doc string (文档字符串) 文档化一个 IronPython 函数。
例 2.2. 定义 BuildConnectionString 和factorial函数的 doc string
def factorial(n): "factorial(n) -> returns factorial of n"
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
单个引号表示一个单行字符串,三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分, 包括硬回车和其它的引号字符。您可以在任何地方使用它们, 但是您可能会发现它们经常被用于定义 doc string 的情况。
三重引号也是一种定义既包含单引号又包含双引号的字符串的简单方法。
在三重引号中的任何东西都是这个函数的 doc string, 它们用来说明函数可以做什么。 如果存在 doc string, 它必须是一个函数要定义的第一个内容( 也就是说, 在冒号后面的第一个内容 )。 在技术上不要求给出函数的 doc string, 但是您应该这样做。我相信在您上过的每一种编程课上都听到过这一点, 但是 IronPython 带给您一些额外的动机: doc string 在运行时可作为函数的属性。
第一个IronPython程序(之二) 第一个IronPython程序(之一) 安装 IronPython
- 混搭.NET技术
- 修改终端服务器的最大连接数
- 跨平台移动开发UI语言 -XAML
- S-shortcodes:WordPress短代码形式美化框插件下载
- 服务器同时存在1.1和2.0程序注意事项
- Flash/Flex学习笔记(44):万有引力与粒子系统
- 代码重写WordPress网页标题为“原网页标题|网站名”的形式
- 未来10年21个核心工作岗位
- Asp.net 2.0 WebPart使用经验点滴
- 使用LinqToExcel读取Excel
- 时代的需要:越来越多的Java工程师开始转向hadoop?
- 如何结合IbatisNet的LIST遍历实现模糊查询
- Flash/Flex学习笔记(41):碰撞检测
- [.NET网格计算框架] Alchemi
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原理+代码|Python基于主成分分析的客户信贷评级实战
- Python办公自动化 | 从PPT到Word
- linux命令行参数getopts参数二选一
- 黎巴嫩首都爆炸能量有多大?物理学家看视频计算:300吨TNT!
- OracleDG 环境主备业务数据不同步备库报ORA-600错误的处理过程
- Xcode清理模拟器文件
- 【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】六、FFmpeg简单合成MP4:视屏解封与重新封装
- 32.opengl高级光照-延迟着色法
- Tsunami:一款功能强大的通用网络安全扫描工具
- Hive查看表/分区更新时间
- 直接通过手机抓取GPS的qxdm日志
- uniapp常用提示框uni.showToast(OBJECT)
- MySQL 索引(3)
- TS 设计模式04 - 适配器模式
- WebRTC | 原理、架构、框架目录、运行机制、核心类、PeerConnection调用过程等详解