"hello world"是编程界一个经久不衰的例子,几乎所有语言的学习教程都把它当做第一个程序的范例。学习的过程就是再造轮子的过程,千万不要以为有人做过的,就不去学习了。

hello world

我们先打开CPython解释器。

o@o-pc:~$ python2.7
Python 2.7.10 (default, Jun 17 2015, 14:15:05)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

打开之后就可以在>>>的后面输入python语句了。

我们先试一下print这个命令,看是否成功输出"hello world"

>>> print "hello world"
hello world

因为这是在python2.7环境下,如果切换到python3.x这就行不通了。不信请看

o@o-pc:~$ python3.4
Python 3.4.3 (default, Mar 26 2015, 22:03:40)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
File "<stdin>", line 1
print "hello world"
^
SyntaxError: Missing parentheses in call to 'print'

python3.4下报了一个错误,意思是语法错误,调用print的时候缺少括号

我们使用有括号的版本就好了。

>>> print ("hello world")
hello world

python脚本文件

上面是在python的交互界面下输出的"hello world",那么有没有办法不使用这种交互界面,而是写一个python脚本文件呢?当然是可以了啦。

我们可以新建一个文件2.py,然后写入

print("hello world")

然后我们使用python 2.py来执行它。

o@o-pc:~$ python 2.py
hello world

关于python脚本的文件名,并不一定要以.py做后缀,这只是比较通用的做法。

如果你想指定这个脚本的解释器,那么可以在脚本的最前面加上一行来指明你所选择的解释器,例如#! /bin/python3.4

#! /bin/python3.4

print("hello world")

help函数

学习过linux/unix系统编程的人,应该对manpage这个东西是比较熟悉的。而python中提供了一个类似的东西,那就是help函数了。如果不清楚某个函数怎么用,就使用help(函数名)来获取相关的文档信息。

python 官方文档中文站

先来获取一下print函数的用法

>>> help(print)

print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.

print函数

print概述

全是英文的,看起来有困难吧。那就别管它了,我来解释一下。


print函数可以用来打印一些值,默认是输出到标准输出

file参数可以控制输出流到别的位置。

end参数控制字符串输出后是否自动加'\n',你可以改为别的。

sep参数用于控制分割符,默认是空格。

flush参数控制是否强制刷新流。

这样说是不是还不清除,没关系,举个栗子嘛。

>>> print(1,"+",2,"=",1+2,sep='\t',end=' ')
1 + 2 = 3 >>> print(1,"+",2,"=",1+2)
1 + 2 = 3
>>>

看上面的输出,分割符换成了'\t',结尾没有加'\n'的。对比一下就很清楚了吧。

这是在python3.4下做的,如果换做python2.7,那么输出会变成

>>> print(1,"+",2,"=",1+2)
(1, '+', 2, '=', 3)

这是两者的区别。

print格式化输出

print的格式化输出,可以参考C语言的printf函数的格式化选项,这是类似的。

看下面的代码

>>> a=1000
>>> print("%d"%a)
1000
>>> b=12.345
>>> print("%f"%b)
12.345000
>>> print("%f"%(a+b))
1012.345000
>>> print("%d"%(a+b))
1012

分析一下。

这里先是定义了一个变量a,并赋值为1000,然后使用print来格式化输出。%d表示以整数的方式来输出,后面紧跟的%a是取变量a的值的意思,和shell脚本中的$有点类似。

后门又定义了一个变量b,赋值为123.45,然后以浮点数的形式输出。

最后两个是输出链路这两者的和。注意,python中的数据是向下取整的。

python中的变量不像C/C++这类强类型的语言,它的变量类型只与其最后一次被赋值有关。看下面的语言,重新给变量b赋值了一个字符串"hello",然后输出它。

>>> b="hello"
>>> print("%s"%b)
hello

再看这个

>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>
>>> b=123
>>> type(b)
<class 'int'>

要注意,格式化字符串一定要用""包含起来,并且后面紧跟要输出的变量。有两个格式化选项%s%r比较特殊,无论变量保存的数据类型是什么,都能正常输出。

原因是%s调用的是str()函数把对象转化为str类型,而%r是调用了repr()将对象转化为字符串。

下面是在python2.7下进行的,python3.x已经不支持这种默认转换了。

>>> import time
>>> d=time.localtime()
>>> print d
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=17, tm_hour=15, tm_min=47, tm_sec=56, tm_wday=2, tm_yday=168, tm_isdst=0)
>>> print "%s"%d
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=17, tm_hour=15, tm_min=47, tm_sec=56, tm_wday=2, tm_yday=168, tm_isdst=0)
>>> print "%r"%d
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=17, tm_hour=15, tm_min=47, tm_sec=56, tm_wday=2, tm_yday=168, tm_isdst=0)

python3.x可以这样做,而且这样做是值得提倡的做法。

>>> print("%s"%(str(d)))
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=17, tm_hour=15, tm_min=44, tm_sec=49, tm_wday=2, tm_yday=168, tm_isdst=0) >>> print("%s"%repr(d))
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=17, tm_hour=15, tm_min=44, tm_sec=49, tm_wday=2, tm_yday=168, tm_isdst=0)

print直接输出变量

print可以直接输出变量的,是按照变量的类型来输出的。关于python变量,将在下一篇文档中详述。

>>> a=10.10
>>> b=123
>>> c="nihao"
>>> d='c'
>>> print(a,b,c,d)
10.1 123 nihao c

2-python学习——hello world的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

  10. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

随机推荐

  1. OC面向对象特性: 继承

    基础知识 1.标识符是有字母,数字,下划线组成的. 2.首字母只能是字母,下划线,不能为数字. 3.标识符要做到见名之意. 4.标识符不能使用已定义的关键字和预定义标识符. 继承 继承:子类可以直接访 ...

  2. Java——列表框:JList

    import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import j ...

  3. Android学习笔记——menu

    该工程的功能是实现两个数相乘,并在另外一个Activity中显示计算的结果 以下的代码是MainActivity.java中的代码 package com.example.menu; import a ...

  4. CSS 中背景图片定位方法

    三种: 关键字:background-position: top left; 像素:background-position: 0px 0px; 百分比:background-position: 0% ...

  5. Quartz.NET总结(二)CronTrigger和Cron表达式

    Quartz.NET的任务调度,主要就是依靠CronTrigger和Cron表达式.Cron是已经在UNIX存在了很长一段时间,它有着强大和可靠的调度能力.CronTrigger类也正是是基于Cron ...

  6. 详细整合教程(Spring+SpringMVC+MyBatis)

    详细整合教程(Spring+SpringMVC+MyBatis) http://blog.csdn.net/gebitan505/article/details/44455235/

  7. 第一篇随笔!!!THE FIRST BLOOD!!!

    注册成功,哈哈 以后就要在这扎窝了,要坚持记录下去,关于生活,关于学习. 选了个皮肤 darkgreen,不错,简洁舒服,喜欢. 好,差不多了,感觉没什么可说的了...==

  8. servlet的九大内置对象

    隐式对象 说明 request 转译后对应HttpServletRequest/ServletRequest对象 response 转译后对应HttpServletRespons/ServletRes ...

  9. oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen

     Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功 create or replace procedure delDept(p_deptno in dept.deptno%type ...

  10. hibernate4中使用Session doWork()方法进行jdbc操作(代码)

    Hibernate3.3.2版本中getSession().connection()已被弃用,hibernate4中官方推荐使用Session doWork()方法进行jdbc操作 首先看看Work接 ...