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对各种变量(这里是字符串)的输入输出规则(加上了单引号),而后者不用。一般使用后者。