Python菜鸟一枚,本篇属于基础入门,主要是笔记整理,并加入自己的实践经验。参考过的所有资料见后。在这里感谢各位大神的慷慨分享和细致解析,也请各位不吝赐教。

简单介绍版本与平台。Python版本2.7.11,集成开发环境Pycharm5.0.4,系统Windows8。

中英文输出

#-*- coding:utf-8 –*-
print "Hello Python!";
print "你好,世界";

英文输出没啥难的。但特别注意到第一行的utf-8是为中文输出加上的。在Python2.x版本中使用的是ASCII字符,包含了英文字母大小写以及标点符号,用一枚字节表示。中文则使用两枚字节表示。在Python3.x版本中使用的是Unicode,不需要加第一行。

传说中的输出中文还有有以下几种方法:

# coding=gbk
# coding=GB2312
# coding=BIG5

据说都是支持中文的,但是即便在平台上编译可通过,输出的还是乱码。原因暂时未知。

基础语法

  • 编程方式

Python分为交互式编程与脚本式编程。交互式编程是类似matlab命令行窗口的编程方式,输入了一行命令后按下ENTER就可输出结果。脚本式编程就是传统的整个程序完成书写后编译。

  • 标识符

所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
标识符是区分大小写的。Python保留字符包括了:
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield

  • 行与缩进

Python的逻辑结构通过相同格式的缩进来表示,好处是省去了C及各种语言中烦人的大括号{}之类,不过提高了程序员书写规范性的要求。编译器针对这点的常见报错有:IndentationError: unexpected indent(缩进未对齐),IndentationError: unindent does not match any outer indentation level(缩进方式不一致,应改为一致)。一个条件结构的判断如下。

u=0
if u>0:
    print "True"
else:
    print "False"
  • 多行语句

Python语句中一般以新行作为为语句的结束符。用斜杠( \)将一行的语句分为多行显示。

u=1+\
    3+\
    4
print u

语句中包含[], {} 或 () 括号就不需要使用多行连接符。

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']
  • 注释

Python单行注释以‘#’开始,多行注释使用三个单引号(”’)或三个双引号(“”“)。

字符串

print 'Hello, world!'
print "Hello, world!"

以上两行代码虽然分别用的是单引号和双引号,但输出结果是相同的。那么这两个输出方式到底有什么差别?看这一行。

print 'Let's go!'

报错为:SyntaxError: invalid syntax。原因很好理解。编译的时候编译器是以‘开始字符串,’结束字符串的,从左到右读入的话,只有Let是被归入字符串内,剩下的s go!’就是没有规约的语句了。修改如下。

print "Let's go!" #法一,使用双引号
print 'Let\'s go!" #法二,使用转义字符

那么如何拼接字符串?就是“加法”运算。

print "Hello"+", world!"

说说两个常用的函数,str与repr。实例与输出结果如下。

print repr('Hello, world!')
print str('Hello, world!')
print repr(10000L)
print str(10000L)

‘Hello, world!’
Hello, world!
10000L
10000
其中长整型数10000L被转换成了10000。网友有各种解释,表示都看不懂。知道输出结果就好了。

再说两个常用的函数。input与raw_input。input假设用户会输入合法的Python表达式,而raw_input则将用户的输入当作原始数据。

name=input("What's your name?")
print "Hello, "+name+"!"

What’s your name?’Vicky’
Hello, Vicky!

name=raw_input("What's your name?")
print "Hello, "+name+"!"

What’s your name?Vicky
Hello, Vicky!
区别就是前者需要考虑到Python对各种变量(这里是字符串)的输入输出规则(加上了单引号),而后者不用。一般使用后者。

参考资料

http://www.runoob.com/python/python-tutorial.html