<>学习笔记 | 第01章 | 基础知识

本学习笔记主要用要记录下学习<<Python基础教程>>过程中的一些Key Point,或自己没怎么搞明白的内容,可能有点杂乱,但比较实用,查找起来也方便。

原书:《Beginning.Python.From.Novice.to.Professional,2nd.Edition》,所以翻译过来,应该是《Python从入门到精通》

作者: Magnus Lie Hetland

整本书由易到难,面面俱到,有要注意的地方或者跟Python3.0区别,都会说明,例子也很实用。对于初学python者,或者有一定编程经验者,本书都非常有参考价值!整个笔记以该书为主,也加了些自己的理解,体会。忘了的时候,可以查查。


第01章:基础知识

------

Jython: Python的Java实现,运行在JVM中,相对稳定,但落后于Python,当前版本2.5,在TA(Python+Robot)会用到

IronPython:Python的C#实现,运行在Common Language Runtime,速度比Python要快

>>> from __future__ import division
>>> 1/2      
0.5
#这是Python为未来预留的一个模块__future__

如果直接运算的话,值是0. 除非输入1/2.0,那么Python就当成否点数来运算

------

>>> 1 + 2 + 3
6
>>> _ + 4        #特殊变量_用于保存上一次计算的结果,只在交互环境下才有意义
10

------

几种退出shell的方式

1. IDLE菜单中的EXIT      

2. >>> ^Z                #WIN: Ctrl+Z按键,UNIX: Ctrl+D

3. >>> exit()            #或者import sys; sys.exit(0)

4. >>> raise SystemExit  #一般在程序中使用

------

变量名:包括字母、数字、下划线,不能以数字开头。所以下面正确的表述

正确:   file_1; dict2; _del

错误:   9jin;   hello world; g-z

------

input与raw_input的区别:

1. 如果输入是数字的话,input后,数据类型为int行,raw_input,则只能字符型.

必须用int(str1)进行转化,这在程序编程中要注意的。

>>> i = input('Enter here:')
Enter here:32
>>> type(i)
<type 'int'>
>>> j = raw_input('Enter here:')
Enter here:43
>>> type(j)
<type 'str'>

>>> raw_input('Enter a number:')
Enter a number:4
'4'
>>> input('Enter a number:')
Enter a number:4
4
2.  input不能包括特殊字符,转译字符,否则会报错,raw_input则可以。

>>> a = input('Enter here:')
Enter here:\n\t
也要注意如果是字符串输入的话,必须加单引号,或双引号

>>> a = input("Enter string:")
Enter string:'hello'

Traceback (most recent call last):
  File "<pyshell#75>", line 1, in <module>
    a = input('Enter here:')
  File "<string>", line 1
    \n\t
       ^
SyntaxError: unexpected character after line continuation character
>>> b = raw_input('Enter here:')
Enter here:*\n\c\t
>>> 
3. 在Win下面双击运行程序,如果想看到交互式的界面,要避免程序一闪而过,就在最底下加raw_input('Press Enter to Exit<>')

4. input函数里面,可以进行数学计算,

>>> input('Enter math expression here:')
Enter math expression here:2+4*2
10

Note: 在python3.0里面,raw_input不存在了,统一用input()函数.

在Python3里面input函数不具备数学计算的功能.

------

format函数来格式化字符串

>>> price = 1000
>>> format(price,"06d")
'001000'

------

>>> round(1/2)        
1.0
#遵循四舍五入
>>> math.floor(1.1),math.floor(-1.1) 
#floor始终是取小的,从名字也可以知道,地板,当然是最底层
(1.0, -2.0)
------

cmath

>>> import math
>>> math.sqrt(-1)   #求负数的平方根
Traceback (most recent call last):
  File "<pyshell#94>", line 1, in <module>
    math.sqrt(-1)
ValueError: math domain error
必须用cmath
>>> import cmath
>>> cmath.sqrt
<built-in function sqrt>
>>> cmath.sqrt(-1)
1j
>>> (1+2j)*(3-4j)    #复数的运算
(11+2j)
------

shebang

如果希望Python脚本像普通脚本一样运行,可以在行首加上#!

再用chmod增加可执行权限,比如下面的:

#!/usr/bin/env python
or
#!/usr/bin/python
$ chmod +x ./hello.py
$ hello.py   
#如果不加的话,必须 ./hello.py  或者  python  hello.py

------

单引号如果还涵单引号的号,必须加转译

''' ''' 三引号,可以按自己意愿输出字符串联,所见即所得的模式,还可以包含单引号,双引号

'Let\'s go'
''Let's go''
>>> print """This is a first programing... 
          print "Hello,World!"         
            print "Let's Go"           
 """
输出结果:
This is a first programing... 
          print "Hello,World!"         
            print "Let's Go"   

>>> print str("Hello,World!")
Hello,World!
>>> print repr("Hello,World!")
'Hello,World!'
str(), repr和反引号是转换值为字符型变量的三中方法

用``反引号来计算算术值,或引用带数字型的变量

>>> print `2+3`
5
>>> temp = 2
>>> print "Temp's value is:", temp
Temp's value is: 2
>>> print "Temp's value is:" + str(temp)
Temp's value is:2
>>> print "Temp's value is:" + `temp`
Temp's value is:2
>>> print "Temp's value is:" + repr(temp)
Temp's value is:2
------

\ 在行中用于转义,如\n代表换行,\t制表符等,在行尾,可忽略,主要用于多行输入。如:

>>> 1 + 2 + 3 \
      - 4 / 2 \
      * 2 % 3
5.0
>>> print "C:\\python27"

C:\python27

也就是说不能在字符串末尾输入\

>>> print "This is illegal.\"
SyntaxError: EOL while scanning string literal

如果真想表示的话,则需要这样:

print r'C:\python27\lib\test\pack1\pack2\pack3' '\\'
C:\python27\lib\test\pack1\pack2\pack3\

如果是长路径的话,这么输入的话就比较麻烦,如果嫌麻烦就在前面加r, raw,原始字符串.

表示保持原样,尤其是正则表达式匹配中,原始字符串会非常有用。

>>> print 'C:\\python27\\lib\\test\\pack1\\pack2\\pack3'
C:\python27\lib\test\pack1\pack2\pack3
>>> print r'C:\python27\lib\test\pack1\pack2\pack3'
C:\python27\lib\test\pack1\pack2\pack3
一般python用的8位ASCII来存储数据的,如果想用Unicode字符来存储的话,则可以存储16位,可以存储更多的字符。用户类似于r

>>> u'Hello,World!'
u'Hello,World!'

本章节主要的内置函数

函数名              作用                                         例子

-----------------------------------------------------------------------

abs(number)         返回数字的绝对值      >>> abs(-2)             #2            
float(object)       将字符串和数字转换为否点型   >>> float('123') #123.0
help()              提供帮助的交互式界面     >>>help(math.cmath)  #或help()
input(prompt)       获取用户输入      >>>input("Enter nuber:")    #见上文
raw_input(prompt)   获取用户输入,字符型>>>raw_input("Enter:")    #见上文
long(object)        将字符串和数字转换为长整数型 >>> long('12345')#12345L
math.ceil(number)   返回数的上入部分,否点型  >>> math.ceil(1.4)  #2.0
math.floor(number)  返回数的下舍部分,否点型  >>> math.floor(-1.6)#-2.0
pow(x,y[,z])        返回x的y次幂,再对z取模   >>> pow(3,2,4)      #1
repr(object)        返回值的字符串方式        >>> repr(1234)      #'1234'
str(object)         将值转换为字符串          >>> str(12345)      #'12345'
round(number[,ndigit])根据指定精度的数字进行四舍五入操作 >>>round(3.14) #3.0        
cmath.sqrt(number)  返回数字的平方根      >>> cmath.sqrt(-4)      #-2j 

   

你可能感兴趣的:(python)