python初学笔记1

来源:互联网 发布:python读txt文件 编辑:程序博客网 时间:2024/06/05 15:07

October 30, 2017 9:00 PM
Python入门笔记

Python变量和数据类型

数据类型

  • 整数
  • 浮点数
  • 字符串(以’ ‘或” “括起来的任意文本)
  • 布尔值(只有True/False两种值;可以用and/or/not运算)
  • 空值(用None表示,不能理解为0)

print语句

print 'hello,world'

print语句也可以跟上多个字符串,用逗号隔开,就可以连成一串输出:

print 'The quick brown fox','jumps over','the lazy dog'

print会依次打印每个字符串,遇到逗号会输出一个空格,因此字符串输出为:
The quick brown fox jumps over the lazy dog

注释

Python的注释以#开头,后面的文字直到行尾都算注释

# 这一行全部都是注释print 'hello' # 这也是注释

变量

在Python中,变量的概念基本上和初中代数的方程变量是一致的。

在Python程序中,变量不仅可以是数字,还可以是任意数据类型。变量是用一个变量名表示,变量名必须是大小写英文,数字和下划线的组合,且不能用数字开头。

在Python中,等号是赋值语句,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123   #a是整数print aa = 'imooc' #a变为字符串print a

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型。

a = 'ABC'b = aa = 'XYZ'print b

结果b还是ABC

List和Tuple类型

list

list是一种有序的集合,可以随时添加和删除其中的元素,构造list直接用[]把list的所有元素括起来,就是一个list对象。

创建list

L = ['Lisa','Bob','Tracy']

由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:

L = ['Lisa',100,True]

访问list

  • 顺序:索引从0开始,例如print L[0]就是Lisa
  • 倒序:倒数第一用-1表示,例如print L[-1]就是Tracy

添加新元素

  • append():把新元素添加到list的尾部
  • insert():接受2个参数,第一个参数是索引号,第二个是待添加的新元素
L = ['Adam','Lisa','Bart']L.append('Paul')L.insert(0,'Dufre')print L

输出:[‘Dufre’,Adam’,’Lisa’,’Bart’,’Paul’]

删除元素

  • pop():删除list的最后一个元素,并且它还返回这个元素,所以我们执行L.pop()后,会打印出’Paul’
  • pop(num):删除list中,索引为2的元素

tuple

tuple是另一种有序的列表,中文翻译为”元组”。tuple和list非常类似,但是tuple一旦创建完毕,就不能修改了。

t = ('Adam','Lisa','Bart')

这个t就不能改变了,tuple没有append()方法,也没有insert()和pop()方法。

因为用()定义单元素的tuple有歧义,所以Python规定,单元素tuple要多加一个逗号”,”,这样就避免了歧义:

t=(1,)print t

打印结果:(1,),自动添加的逗号是为了更明确的告诉你这是一个tuple

t = ('a','b',['A','B'])L = t[2]L[0] = 'X'L[1] = 'Y'print t

输出:(‘a’,’b’,[‘X’,’Y’])

这个例子不是说明tuple是可变的,表面上t中的元素变了,但其实变的不是tuple的元素,而是list的元素。tuple的指向并没有变。

条件判断和循环

Python代码的缩进规则

具有相同缩进的代码被视为代码块,Python的习惯写法:4个空格,不要使用Tab

if/if-else/if-elif-else

if/else和C语言中的类似,elif相当于else if

if age >= 18:    print 'adult'elif age >= 6:    print 'teenager'elif age >= 3:    print 'kid'else:    print 'baby'

for循环

L = ['Adam','Lisa','Bart']for name in L:    print name

while循环

N = 10x = 0while x < N:    print x    x = x+1

Dict和Set

Dict

dict是存储key:value的关系,花括号{}表示这是一个dict

d = {    'Adam':95,    'Lisa':85,    'Bart':59}

相应的操作:

  • d[key]:查找对应的value
  • d[key]=value:更新以后key-value或添加新的key-value
  • for key in d:遍历dict

dict的特点:

  • 查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样
  • 占用内存很大,还会浪费很多内容
  • key不能重复
  • 内部是无序的
  • 作为key的元素必须不可变

Set

set持有一系列元素,这一点和list很像,但是set的元素没有重复,而且是无序的,这点和dict的key很像。

可以调用set()病传入一个list,list的元素将作为set的元素

s = set(['A','B','C','C'])print s

结果为set([‘A’,’C’,’B’]),set会去掉重复的元素

相应的操作:

  • ‘B’ in s:输出 True,set没有办法通过索引来访问,但可以判断某个元素是否在set中
  • for key in d:遍历set
  • s.add():添加元素
  • s.remove():删除元素

set的特点:

  • set存储的元素也是没有顺序的,内部结构和dict很像,唯一区别是不存储value

函数

在Python中,定义一个函数要使用def语句,依次写出函数名/括号/括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return语句返回

def my_abs(x):    if x >= 0        return x    else        return -x

Python中函数还可以返回多个值,这个多值实际上是返回一个tuple

import mathdef move(x,y,step,angle):    nx = x + step * math.cos(angle)    ny = y - step * math.sin(angle)    return nx,nyx,y = move(100,100,60,math.pi/6)print x,y

Python中函数还可以接受任意个参数

def fn(*args):    if len(args) == 0        return 0.0    else        return sum(args)*1.0/len(args)    print fn()    print fn(1,2)    print fn(1,2,2,3,4)

输出为:0.0 1.5 2.4

原创粉丝点击