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)
变量名称是对大小写敏感的,myname和myName不是同一个变量。
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 != ''
def(define的缩写),格式如下:
def sayHello():
print 'hello world!'
sayHello是这个函数的名字,后面的括号里是参数,这里没有,表示不需要参数。但括号和后面的冒号都不能少。下面缩进的代码块就是整个函数的内容,称作函数体。
第一个常用的命令是:
dir (windows环境下)
ls (mac环境下)
dir和ls的作用差不多,都是显示出当前目录下的文件和文件夹。
具体效果可参见文末的附图。
第二个常用命令是:
cd 目录名
通过dir或ls了解当前目录的结构之后,可以通过“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。
- Python自学入门
- Python自学入门 下
- Python入门自学笔记20160628
- Python入门自学笔记20160630
- Python入门自学笔记20160705
- Python自学记录_入门(变量)
- python自学笔记(1)--python入门第一课
- Python 自学
- Python自学
- 自学中医入门必读
- JavaWeb SSI入门自学
- Github入门自学
- JQuery入门自学
- MySQL自学-入门篇
- JAVA入门自学笔记
- <自学PHP+MySQL> 入门
- matlab自学入门
- 自学 Java 怎么入门?
- 3.7、编写顺序结构的程序
- 战略由谁来制定
- oracle 察看表ddl
- [leetcode] Generate Parenthese
- C#读写txt文件的两种方法介绍
- Python自学入门
- 虚函数实现原理(转)
- Goldengate FORMAT RELEASE
- python基础教程__列表、元组、字符串和字典
- windowSoftInputMode
- arm-eabi, arm-linux-androideabi, arm-linux-gnueabi, arm-none-linux-gnueabi工具链的区别
- python 布尔类型
- 安卓工程师面试准备
- BZOJ 3888 Usaco 2015 Jan Stampede 模拟