Python自学入门

来源:互联网 发布:淘宝联盟历史版本5.0 编辑:程序博客网 时间:2024/04/28 13:47

为了满足项目的需要,决定这个周把Python走一遍。这里把自己认为比较重要的知识稍作记录

其实在python命令行下,print是可以省略的,默认就会输出每一次命令的结果。就像这样:
>>> 'YourYiDa!'
'Your YiDa!'
>>> 2+13+250
265
>>> 5<50
True

Python有一个接收命令行下输入的方法:
input()
注意,和print不同的是,这次我们必须得加上()了,而且得是英文字符的括号。


注意!引号!!又是引号!!!和print一样,如果你输的是一串文字,要用引号''或者""引起来,如果是数字则不用。


python还有一个输入的方法:raw_input(),它把所有的输入都直接当作一串字符,于是就可以不用加引号


字符串 - 表示一串字符,需要用''""引起来

变量,那就是能变的。所以在一次“赋值”操作之后,还可以继续给它赋予新的值,而且可以是不同类型的值。

=”的右边还可以更复杂一点,比如是一个计算出的值:


if 条件:
选择执行的语句

特别说明:条件后面的冒号不能少,同样必须是英文字符。
特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格。python用这种方法替代了其他很多编程语言中的{}。你也可以选择1/2/3...个空格或者按一下tab键,但必须整个文件中都统一起来。千万不可以tab和空格混用,不然就会出现各种莫名其妙的错误。所以建议都直接用4个空格。

python里,以“#”开头的文字都不会被认为是可执行的代码。
print hello world

print "helloworld" #输出一行字
是同样的效果。但后者可以帮助开发者更好地理解代码。



while条件:
 循环执行的语句


同if一样,注意冒号,注意缩进。


两层缩进,要保持每层缩进的空格数相同。

python还提供了很多模块,用来实现各种常见的功能,比如时间处理、科学计算、网络请求、随机数等等等。

 

 

引入模块的方法:


from
模块名 import方法名

from random import randint


之后你就可以用randint来产生随机数了。

input后面的()吗,我们使用randint的时候后面也要有()。类似C#引用命令空间和java中的包

变量名不是你想起就能起的:


第一个字符必须是字母或者下划线“_

剩下的部分可以是字母、下划线“_”或数字(0-9

变量名称是对大小写敏感的,mynamemyName不是同一个变量。



python中运算的顺序是,先把“=”右边的结果算出了,再赋值给左边的变量。下面这个例子: a = 5 a = a + 3 print a
你会看到,输出了8,因为先计算出了右边的值为8,再把8赋给左边的a
通过这种方法,可以实现累加求和的效果。它还有个简化的写法:
a += 3
这个和a = a + 3是一样的。

for i in range(1, 101):
print i

range(1, 101)表示从1开始,到101为止(不包括101),取其中所有的整数。for i in range(1, 101)就是说,把这些数,依次赋值给变量i。


for i in range(a, b)   a循环至b-1


python中最常用的字符串表示方式是单引号(‘’)和双引号("")。我还是要再说:一定得是英文字符!

'string'和“string”的效果是一样的。

如果你想表示一段带有英文单引号或者双引号的文字,那么表示这个字符串的引号就要与内容区别开。


内容带有单引号,就用双引号表示"It's good"
反之亦然
You are a "BAD" man

 

python中还有一种表示字符串的方法:三个引号(‘’‘)或者("""


在三个引号中,你可以方便地使用单引号和双引号,并且可以直接换行
'''
"What's your name?" I asked.
"I'm Han Meimei."

'''

 

还有一种在字符串中表示引号的方法,就是用\,可以不受引号的限制


\'表示单引号,\"表示双引号
‘I\'m a \"good\" teacher’


\被称作转译字符,除了用来表示引号,还有比如用
\\表示字符串中的\
\n表示字符串中的换行


\还有个用处,就是用来在代码中换行,而不影响输出的结果:
"this is the\
same line"


这个字符串仍然只有一行,和
"this is thesame line"
是一样的,只是在代码中换了行。当你要写一行很长的代码时,这个会派上用场。


如果想让这5*在同一行,就在print语句后面加上逗号
for i in range(0, 5):
print '*',



先从简单的开始,如果你想把两段字符连起来输出
str1 ='good'
str2 = 'bye'

你可以
print str1 + str2


或者还可以把字符变量一个字符串相加
print'very' + str1
print str1 + ' and ' + str2

 

但如果你想要把一个数字加到文字后面输出,比如这样
num = 18
print 'My age is' + num
程序就会报错。因为字符和数字不能直接用+相加。


一种解决方法是,str()把数字转换成字符串
print 'My age is' + str(18)

num = 18
print 'My age is' + str(num)

 

 

还有一种方法,就是用%对字符串进行格式化
num = 18
print 'My age is %d' % num
输出的时候,%d会被%后面的值替换。输出
My age is 18



这里,%d只能用来替换整数。如果你想格式化的数值是小数,要用%f
print
Price is %f % 4.99
输出
Price is 4.990000

无论你有多少个值需要代入字符串中进行格式化,只需要在字符串中的合适位置用对应格式的%表示,然后在后面的括号中按顺序提供代入的值就可以了。占位的%和括号中的值在数量上必须相等,类型也要匹配。

虽然类型可以随意改变,但当你对一个特定类型的变量进行操作时,如果这个操作与它的数据类型不匹配,就会产生错误。


int(x) #把x转换成整数
float(x) #把x转换成浮点数
str(x) #把x转换成字符串
bool(x) #把x转换成bool值

在if、while等条件判断语句里,判断条件会自动进行一次bool的转换。比如
a = '123'
if a:
 print 'this is not a blank string'

这在编程中是很常见的一种写法。效果等同于
if bool(a)
或者
if a != ''




defdefine的缩写),格式如下:

 

def sayHello():

   print 'hello world!'

 

sayHello是这个函数的名字,后面的括号里是参数,这里没有,表示不需要参数。但括号和后面的冒号都不能少。下面缩进的代码块就是整个函数的内容,称作函数体。


第一个常用的命令是:

dir windows环境下)

ls mac环境下)

 

dirls的作用差不多,都是显示出当前目录下的文件和文件夹。

具体效果可参见文末的附图。

 

第二个常用命令是:

cd 目录名

 

通过dirls了解当前目录的结构之后,可以通过“cd目录名的方式,进入到当前目录下的子目录里。

 

如果要跳回到上级目录,可以用命令:

cd ..

 

另外,Windows下如果要写换盘符,需要输入

盘符:

 

比如从c盘切换到d

C:\Documents and Settings\Crossin>d:

 

如果我们希望自己定义的函数里允许调用者提供一些参数,就把这些参数写在括号里,如果有多个参数,用逗号隔开,如:

 

sayHello('Crossin')

还是注意,字符串类型的值不能少了引号。

新概念--list,中文可以翻译成列表,是用来处理一组有序项目的数据结构。想象一下你的购物清单、待办工作、手机通讯录等等,它们都可以看作是一个列表

def sayHello(someone):

   print someone + ' says Hello!'

 

或者

 

def plus(num1, num2):

   print num1+num2

 

参数在函数中相当于一个变量,而这个变量的值是在调用函数的时候被赋予的。在函数内部,你可以像过去使用变量一样使用它。

 

调用带参数的函数时,同样把需要传入的参数值放在括号中,用逗号隔开。要注意提供的参数值的数量和类型需要跟函数定义中的一致。

print range(1,10)

 

得到的结果是:

 

[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

这就是一个list。它由range产生。把上面那个for循环语句写成:

 

l = range(1, 10)

for i in l:

 

效果是一样的。

我们也可以定义自己的列表,格式就是用中括号包围、逗号隔开的一组数值:

 

l = [1, 1, 2, 3, 5, 8, 13]

 

可以用print输出这个列表:

 

print l

 

同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:

 

for i in l:

   print l,

 

1. 访问list中的元素


要访问l中的第1个元素365,只要用l[0]就可以了。依次类推,

2. 修改list中的元素

修改list中的某一个元素,只需要直接给那个元素赋值就可以了:

 

l[0] = 123

3. list中添加元素

list有一个append方法,可以增加元素。以l这个列表为例,调用的方法是:

 

l.append(1024)

4. 删除list中的元素

删除list中的某一个元素,要用到del

 

del l[0]

list有两类常用操作:索引(index)和切片(slice)

除了指定位置进行索引外,list还可以处理负数的索引。继续用昨天的例子:

 

l = [365, 'everyday', 0.618, True]

 

l[-1]表示l中的最后一个元素。

l[-3]表示倒数第3个元素。

 

切片操作符是在[]内提供一对可选数字,用:分割。冒号前的数表示切片的开始位置,冒号后的数字表示切片到哪里结束。同样,计数从0开始。

注意,开始位置包含在切片中,而结束位置不包括

 

l[1:3]

 

得到的结果是['everyday', 0.618]

 

如果不指定第一个数,切片就从列表第一个元素开始。

如果不指定第二个数,就一直到最后一个元素结束。

都不指定,则返回整个列表的一个拷贝。

 

通过指定分割符号为'.',可以把每句话分开

 



s = ';' 
li = ['apple', 'pear', 'orange'] 
fruit = s.join(li) 
print fruit 


得到结果'apple;pear;orange'。 
从结果可以看到,分号把list中的几个字符串都连接了起来。 


l[:3]

l[1:]

l[:]

 

同索引一样,切片中的数字也可以使用负数。比如:

 

l[1:-1]

 

得到['everyday', 0.618]

split()会把字符串按照其中的空格进行分割,分割后的每一段都是一个新的字符串,最终返回这些字符串组成一个list

split()同时也会按照换行符\n,制表符\t进行分割。所以应该说,split默认是按照空白字符进行分割。



section.split('.')

'aaa'.split('a')

 

将会得到['', '', '', ''],由四个空串组成的list。


join的格式有些奇怪,它不是list的方法,而是字符串的方法。首先你需要有一个字符串作为list中所有元素的连接符,然后再调用这个连接符的join方法,join的参数是被连接的list

section.split('.')

'aaa'.split('a')

 

将会得到['', '', '', ''],由四个空串组成的list。


s = ';' 
li = ['apple', 'pear', 'orange'] 
fruit = s.join(li) 
print fruit 


得到结果'apple;pear;orange'。 
从结果可以看到,分号把list中的几个字符串都连接了起来

section.split('.')

'aaa'.split('a')

 

将会得到['', '', '', ''],由四个空串组成的list。


用来连接的字符串可以是多个字符,也可以是一个空串: 


''.join(['hello', 'world']) 

section.split('.')

'aaa'.split('a')

 

将会得到['', '', '', ''],由四个空串组成的list。


1. 遍历
通过for...in可以遍历字符串中的每一个字符。
word = 'helloworld'
for c in word:
 print c


2. 索引访问
通过[]加索引的方式,访问字符串中的某个字符。
print word[0]
print word[-2]


与list不同的是,字符串能通过索引访问去更改其中的字符。
word[1] = 'a'
这样的赋值是错误的。


3. 切片
通过两个参数,截取一段子串,具体规则和list相同。
print word[5:7]
print word[:-5]
print word[:]


4. 连接字符
join方法也可以对字符串使用,作用就是用连接符把字符串中的每个字符重新连接成一个新字符串。不过觉得这个方法有点鸡肋,不知道在什么场景下会用到。
newword = ','.join(word)

 

 



section.split('.')

'aaa'.split('a')

 

将会得到['', '', '', ''],由四个空串组成的list。

0 0
原创粉丝点击