您的位置:首页 > 编程语言 > Python开发

Python学习笔记,4Python基础知识笔记

2016-12-23 15:38 615 查看

声明:

想学习的朋友可以直接看http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

廖雪峰老师的网站学习,这些只是个人笔记和整理。


输出

print
加上字符串,就可以向屏幕上输出指定的文字。比如输出
'hello, world'
,用代码实现如下:
>>> print 'hello, world'
输入Python提供了一个
raw_input
,可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
>>> name = raw_input()
Michael
当你输入
name = raw_input()
并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。输入完成后,不会有任何提示,Python交互式命令行又回到
>>>
状态了。那我们刚才输入的内容存放到
name
变量里了。可以直接输入
name
查看变量内容:
>>> name
'Michael'

raw_input

最后看一个有问题的条件判断。很多同学会用
raw_input()
读取用户的输入,这样可以自己输入,程序运行得更有意思:
birth = raw_input('birth: ')
if birth < 2000:
print '00前'
else:
print '00后'
输入
1982
,结果却显示
00后
,这么简单的判断Python也能搞错?当然不是Python的问题,在Python的交互式命令行下打印
birth
看看:
>>> birth
'1982'
>>> '1982' < 2000
False
>>> 1982 < 2000
True
原来从
raw_input()
读取的内容永远以字符串的形式返回,把字符串和整数比较就不会得到期待的结果,必须先用
int()
把字符串转换为我们想要的整型:
birth = int(raw_input('birth: '))
再次运行,就可以得到正确地结果。

注释:
# print absolute value of an integer:

#
开头的语句是注释。其他每一行都是一个语句,当语句以冒号“:”结尾时,缩进的语句视为代码块。没有规定缩进是几个空格还是Tab。按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

转义字符:
转义字符
\
可以转义很多字符,比如
\n
表示换行,
\t
表示制表符,字符
\
本身也要转义,所以
\\
表示的字符就是
\


Python还允许用
r''
表示
''
内部的字符串默认不转义:
>>> print '\\\t\\'
\       \
>>> print r'\\\t\\'
\\\t\\
Python允许用
'''...'''
的格式表示多行内容:
>>> print '''line1
... line2
... line3'''
line1
line2
line3

空值

空值是Python里一个特殊的值,用
None
表示。
None
不能理解为
0
,因为
0
是有意义的,而
None
是一个特殊的空值。

list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出班里所有同学的名字,就可以用一个list表示:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
len()
函数可以获得list元素的个数:
>>> len(classmates)
3
要删除list末尾的元素,用
pop()
方法:
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
要删除指定位置的元素,用
pop(i)
方法,其中
i
是索引位置:
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']

tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
>>> classmates = ('Michael', 'Bob', 'Tracy')

Python程序中,用
if
语句实现:
age = 20
if age >= 18:
print 'your age is', age
print 'adult'
注意不要少写了冒号
:

elif
else if
的缩写,完全可以有多个
elif
,所以
if
语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是
True
,把该判断对应的语句执行后,就忽略掉剩下的
elif
else
,所以,下面的程序打印的是
teenager
age = 20
if age >= 6:
print 'teenager'
elif age >= 18:
print 'adult'
else:
print 'kid'

循环

Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
执行这段代码,会依次打印
names
的每一个元素:
Michael
Bob
Tracy
所以
for x in ...
循环就是把每个元素代入变量
x
,然后执行缩进块的语句。第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum
在循环内部变量
n
不断自减,直到变为
-1
时,不再满足while条件,循环退出。

dict

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:
names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
注意,dict内部存放的顺序和key放入的顺序是没有关系的。和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而增加;
需要占用大量的内存,内存浪费多。
而list相反:查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 2, 3])
>>> s
set([1, 2, 3])
通过
add(key)
方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
通过
remove(key)
方法可以删除元素:
>>> s.remove(4)
>>> s
set([1, 2, 3])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: