1 Python脚本设计简介
1.1 输出"Hello World"
和一般的语言一样,运行python程序有两种方式,一种是GUI交互式命令,一种是通过脚本文件,前者适合小型简单的任务,后者适合比较大型的。
又是输出Hello World。。。。
提出"Hello World"程序的Simon Cozen说:"它是编程之神的传统咒语,可以帮助你更好的学习语言"。
1.1.1 使用带提示符的解释器
输出Hello World
使用函数print
print "Hello World"
1.1.2 使用源文件
#!/usr/bin/python
#Filename:HelloWorld
print "Hello World"
保存后如果在linux环境下,需要先修改执行权限,然后像shell执行程序一样,或者使用python方式,python HelloWorld.py
程序说明:Python至少应当有第一行那样的特殊形式的注释,它被称作组织行——源文件的头两个字符是#! 后面跟着一个程序.这一行告诉你的Linux/Unix系统,当你执行你的程序的时候,它应该运行哪个解释器。
使用帮助:help('命令名称')
1.1.3 双斜线与整除
Python提供了用于实现整除的操作符————双斜线
>>> 1//2
0
就算是浮点数,双斜线也会执行整除
>>> 1.0//2.0
0.0
1.2获取用户输入——input函数
input函数是一种标准输入函数,用于获取用户的输入
示例1:
input ("The meaning of life: ")
The meaning of life:42
42
1.3 函数
函数在各种语言中都是很常见的,与数学中的函数不同,计算机里面的函数通常都是一种比较高层的已经封装好的,通常可以直接拿来用,而数学中的函数都是一种具体的算法。
示例1:乘方函数pow
pow(2,3)
8
示例2:abs函数
说明:该函数用于计算绝对值
abs(-10)
10
示例3:round函数
说明:该函数会把浮点数四舍五入为最接近的整数值
round(1.0/2.0)
0.5
示例4:floor函数(地板函数)和ceil函数(天花板函数)
说明:想象一下一个人站在一间房子里面,这个人的身高肯定是介于地板和天花板之间的。对应于地板的就是floor函数,对应于天花板的是ceil函数,他们分别取小于一个浮点数的最大的整数和大于一个浮点数的最小整数
math.floor(32.9)
32.0
>>> math.ceil(32.9)
33.0
实例5:cmath和sqrt
cmath即complex math 复数的意思。
sqrt是开平方,我们可以对复数开平方
>>> import cmath
>>> cmath.sqrt(-1)
1j
1.4 字符串
首先说明3种正引号、反引号、反斜线,然后再说对字符串的操作
3种正引号包括:单引号''、双引号""和三引号''' ''',注意双引号并不是两个单引号的简单叠加。两个单引号在一起是'' '' 而双引号是"",可以看出双引号比两个单引号放一起更加紧密。
反引号:``
反斜线:\
一般说的引号就是正引号。无论是正引号还是反引号都是成对的。正引号通常用于包字符串。python通常打印字符串的时候都会用单引号包起来。
>>> "hello"
'hello'
>>> 'hello'
'hello'
>>> ''' hello '''
' hello '
但是在有些情况下仅仅靠单引号是不够的例如我们要打出Let's go
'Let's go',系统会识别不出来单引号是从哪里开始包字符串,并且到哪里结束,这样就会编译错误。
>>> 'Let's go'
File "<stdin>", line 1
'Let's go'
^
SyntaxError: invalid syntax
我们可以用两种方法来解决这个问题
解决办法1:使用反斜线做转义字符
>>> 'Let\'s go'
"Let's go"
解决办法2:使用单引号或三引号
''' Let's go'''
" Let's go"
>>> ''' Let\'s go '''
" Let's go "
" let's go"
" let's go"
对于双引号也是可以用转义字符来进行转义
例如"Hello World!" she said
>>> "\"Hello,world\""
'"Hello,world"'
>>> '\"Hello,world\"'
'"Hello,world"'
总之使用单引号时候需要用反斜线转义,使用双引号或三引号时候可以不用转义符号解析。
反引号:``,反引号在shell里面也有,它是将它包的东西进行引用,并赋给一个变量。
示例:
temp = 32
>>> a = temp
>>> a
32
>>> print temp
32
>>> print `temp`
32
在比较早期的版本里面需要用反引号,在3.0以后的python版本,不需要反引号了
反斜线:\ 这个东东通常用于转义,没啥好挖掘的
1.5 对字符串的操作
示例1:字符串的拼接
拼接方式1:直接放一起
"hello""world"
'helloworld'
拼接方式2:使用连接符号+
>>> "hello" + "world"
'helloworld'
建议使用第二种,可读性更好
1.6 字符串的格式化输出
str和repr函数
通过前面的例子我们注意到,通过Python打印的字符串是被引号括起来的,这是因为Python打印值时会保持该值在Python代码中的状态,而不是你希望用户所看到的状态。如果使用print语句就不一样。
>>> "Hello World"
'Hello World'
>>> 1000L
1000L
>>> print "Hello World"
Hello World
>>> print 1000L
1000
事实上这里涉及到了python对值处理的两种机制,这里分别用str和repr代表。对于str函数,它会把值转换为合理形式的字符串,以便用户可以理解。而repr会创建一个字符串,它以合法的python表达式的形式来表示值,这样方便对转换后进行再处理。
>>> print str("Hello World")
Hello World
>>> print str(1000L)
1000
>>> print repr("Hello World")
'Hello World'
>>> print repr("1000L")
'1000L'
1.7 input和raw_input的比较
input要求用户输入的是合法的表达式,比如字符串要带双引号,而raw_input要求输入的是普通的字符串。我们看一个例子:
>>> input("What's your name:")
What's your name:ren
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'ren' is not defined
问题在于ren并非python标准的表达式,我们可以修改一下:
>>> input("What's your name:")
What's your name:"ren"
'ren'
显然要用户输入时候还要带上引号是不可忍受的,raw_input的作用就是让用户不必输入引号,而是裸的(raw)字符串
>>> raw_input("what's your name;")
what's your name;ren
'ren'
一般情况下,我们都使用raw_input
1.8 长字符串、原始字符串和Unicode
长字符串:长字符串就是很长很长的字符串,如果需要些一个非常非常长的字符串,它需要跨多行,那就可以用三引号来包这个长字符串。
>>> print ''' this is
... a ver long string
... it starts from here
... and still continues
... "Hello World"
... still here '''
this is
a ver long string
it starts from here
and still continues
"Hello World"
still here
View Code
普通字符串也可以,但是需要用反斜线放在末尾
>>> print " hell \
... llo"
hell llo
>>> print 'hel\
... ll'
helll
View Code
在没有需要进行转义的情况下,单引号和双引号是等价的,如果有需要转义,单引号+转义效果和双引号和三引号效果是一样的。对于长字符串,三引号又和单引号+末尾转义和双引号+末尾转义等价,总之三引号是最强大的
原始字符串:我们知道反斜线有转义字符的作用。比如要打印一个路径C:\now\hello\ab\
可以使用转义字符:print 'c:\\now\\hello\\ab',看起来是十分麻烦的。还好python提供了一个关键字r,它表示与它贴在一起的字符串是是一个原始的字符串,也就是不会进行转义的。
>>> print r'C:\now\hello\ab'
C:\now\hello\ab
看起来不可思议~!
注意:不能在原始字符串r后面再用转义字符,否则会将反斜线也打出来的。并且如果有反斜线,也不能放在末尾。否则会编译错误。
Unicode字符串
字符串常量的最后一种类型就是Unicode字符串。普通的字符串以8位的ASCII码形式存储,而Unicode字符串以16位Unicode字符,这样就可以表示更多的字符集,包括世界上大多数语言的特殊字符。
和使用原始字符串一样,加上字符u前缀即可。
>>> u"hello world"
u'hello world'
2 本章总结
本章介绍了Python的很多细碎的知识,多操作即可。