Python学习笔记(一)

Published: 2013-12-03 Category: python Tags: python

Python学习一

在学习python之前,个人建议先看下维基的python介绍。 安装python就不说了,因为我还是用的windows,所以从官网下载对应版本的.msi文件,双击下一步下一步就可以了。

基本语法知识


1、数字和表达式

开始->Python 2.7->IDLE(Python GUI),输入1/2 回车,结果为0.这个也许不是我们所期望的结果。但只要我们让参与除法的其中一个数为浮点数那么结果就正确了。 如:<pre>1/2.0</pre> 结果就为0.5了。或者采用另一种方式实现:<pre class="prettyprint">from future import division</pre>
输入1/2回车就是0.5了。后面章节将会对__future__模块做详细介绍。

Python还提供了另外一个用于实现整除的操作符–双斜线。<pre>1//2</pre>

结果是0, 就算是使用浮点数,双斜线也会执行整除。

还有一个取余的运算,<pre>x%y</pre> 这个就是x除以y的余数。最后一个运算符就是幂运算符: <pre class="prettyprint">3**3</pre>
结果为81,或者采用python的内建函数来实现:<pre>pow(3,3)</pre>
都是表示3的三次方。

普通整数不能大于2147483647也不能小于-2147483648,如果真的需要大数,可以使用长整型数,长整型和普通整数一样,只是结尾有个大写的L。

python中的十六进制写法<pre class="prettyprint">0xef</pre>

八进制写法<pre class="prettyprint">010</pre>

2、变量

python中的变量时没有指定其类型的,如 <pre class="prettyprint">x=3</pre>,我们发现并没有指定x变量的类型。变量名不能以数字开头。

3、输入

x = input("x:")
3
y = input("y:")
9
print(x*y)
27

### 4、使用函数

 python
#内建函数
pow()
round()
int()
float()
long()
input()
raw_input()
print()

#math模块函数
import math
math.floor()
math.ceil()
math.sqrt()

#字符串函数
str()
repr()


#注:其实int()把参数转换成整数时会自动向下取整,所以在转换过程中,
#math.floor()是多余的,如可以直接使用int(32.65),math.ceil()与math.floor()相反是取大于
#等于参数的整数。如math.ceil(32.023)会得到33.0。

#另外,str()和repr()函数的区别是str()它会把值转换为合理形式的字符串,以便用户可以理解,
#而repr()则会创建一个字符串,
#它以合法的python表达式的形式来表示值。

#input()与raw_input()的区别是input()会假设用户输入的是合法的python表达式(或多或少与repr函
#数有些相反的意思),而raw_input()它会把所有的输入当做原始数据(raw_data),然后将其放入字符串中。

如以下例子:

name = input("输入你的名字:")
print('Hello'+name+"!")

如果我们输入的是: jia58960 那么程序会报错:

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    name = input("输入你的名字:")
  File "<string>", line 1, in <module>
NameError: name 'zhangjia' is not defined
>>>

#但如果我们输入的是: 'jia58960',程序就会运行正确。你知道要求用户带着引号输入他们的名字是不是有
#点过分?因此,这就需要使用raw_input(),除非input()非常有必要,否则应该
#尽可能用raw_input函数。

### 5、长字符串、原始字符串和Unicode

若要编写一个很长的字符串,它需要跨多行,那么使用’'’或”"”来代替普通引号,如下

python print ('''这是一个很长。。。 很长很长"很长"很长 。'。。' 的字符串''') 因为使用了这种与众不同的引用方式,所以你可以在字符串中间使用单引号或双引号而不需要反斜线转义。

提示:普通字符串亦可以跨行。如果一行之中最后一个字符时反斜线,那么换行符本身就转义了,也即是被忽略了,例如:

print "Hello, \
world"
>>> "Hello,world"

这个用户也适用于表达式和语句:

print(1+2 \
+4+5\
+8)
>>> 20

我们知道在普通字符串中反斜线有其特殊的作用:会转义。如<pre class="prettyprint">print(‘hello,\nworld’) »> hello,world</pre>

但有时我们希望输出的字符串中包含\n,原始字符就派上用场了:原始字符不会把反斜线当成特殊字符。
在原始字符串中输入的每个字符都会与书写的方式保持一致。

如:

print(r'c:\demo\nowhere\bar\foo\test')
>>> c:\demo\nowhere\bar\foo\test

可以看到原始字符串以r开头。注意:不能再原始字符串结尾输入反斜线,也就是原始字符串最后一个字符不能使反斜线!除非你对 该反斜线进行了转义。

像下面这样还是可以的:

>>> print(r'c:\asd\wfasf\qwras\asf\\')
c:\asd\wfasf\qwras\asf\\
>>> print(r'c:\asd\wfasf\qwras\asf'+'\\')
c:\asd\wfasf\qwras\asf\
>>>

关于Unicode字符串,后面的内容将会讲到。

Fork me on GitHub