Python学习笔记,4Python基础知识笔记
2016-12-23 15:38
615 查看
声明:
想学习的朋友可以直接看http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
廖雪峰老师的网站学习,这些只是个人笔记和整理。输出
用'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])
相关文章推荐
- 论numpy中matrix 和 array的区别
- numpy.random 方法
- Python运维圈的大牛在呼喊你~~
- Python学习笔记,2第一个程序
- python入门 第10章 列表生成式
- Python 列表(List)操作
- python 第九章 迭代
- Python use Selenium to control the webdriver
- Python实现简单爬虫功能--批量下载百度贴吧里的图片
- 用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件
- python 数值处理内置函数
- 20 个顶尖的 Python 机器学习开源项目
- python入门 第8章 切片
- 用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件
- Python 机器学习
- 240.Search a 2D Matrix II
- 53 leetcode - Group Anagrams
- Python中list里的中文输出到html模板里的问题解决
- python:内置核心数据类型
- Python 播放声音 音频与beep