python入门笔记
创建变量
python的变量不需要声明数据类型。
>>> fred=100 >>> print (fred) 100
>>> fred 100
创建字符串
字符串需要用'',""单引号或者双引号括起来。
>>> sstr='how are you!' >>> sstr 'how are you!' >>> print (sstr) how are you!
在字符串里嵌入值
其中%s是占位符,后面的变量myscore表示被代替的变量
>>> myscore =100 >>> message='I scored %s points!' >>> print (message % myscore) I scored 100 points!
如果有多个占位符,则后面的变量要放在括号里,以逗号隔开
列表
列表是某种程度上相当于一个数组,但是比普通数组强大多了。
列表通过[]创建
列表里的元素不一定是同种数据类型
可以通过下标修改列表元素
>>> myList=[9,13,421,'abc'] >>> print (myList) [9, 13, 421, 'abc'] >>> myList[0]='ok' >>> print (myList) ['ok', 13, 421, 'abc']
可以利用print输出部分列表内容,注意范围是左闭右开。
>>> print (myList[2:4]) [421, 'abc']
向列表中增加新元素需要用append。直接通过下标来设置值是不对的,会越界。
>>> myList[4]=1111 IndexError: list assignment index out of range >>> myList.append(1111) >>> print (myList[4]) 1111
删除指定元素
>>> del myList[0] >>> print (myList) [13, 421, 'abc', 1111] >>> del myList[1:3] >>> print (myList) [13, 1111]
列表支持+和*运算。
+可以连接两个列表,*可以将指定列表重复n遍。
元组
元组更像C里面的数组,它一旦创建后就不能改动了,包括元组的大小和值。所以元组相当于一个常量数组。
元组用()创建
>>> f=(1,2,3,4) >>> f[0]=10 TypeError: 'tuple' object does not support item assignment
字典
字典的每个元素都有一个键和值,通过键找到值。
字典用{}来创建
>>> myMap={'a':'A','xxx':'fsadfsg'}
>>> print (myMap)
{'xxx': 'fsadfsg', 'a': 'A'}
>>> print (myMap['xxx'])
fsadfsg
不能访问不存在的键对应的元素
>>> print (myMap['b']) KeyError: 'b'
字典的修改值和删除元素都是通过键来的。
字典的加法没有意义的。
if和else语句
缩进在python里面非常重要。if条件后面需要有一个引号。
>>> age=30
>>> if age>20:
print ('You are too old!')
You are too old!
如果if后面有多个条件 ,根据它们的关系可以使用and、or。
如果是多重if:
>>> age=
>>> :
print ('You are too old!')
elif age>:
print ('You are ok!')
else:
print ('You are too young!')
You are too old!
注意,同一个语句块的代码要有相同的缩进!否则会报错。
使用for循环
这里用到了range这个函数,显然是左闭右开的。它返回一个迭代器保存到x中。
>>> ,):
print(x)
如果把range的迭代器保存到list中
>>> print (list(range(,))) [, , , , , ]
用for循环输出列表
>>> myList=['zzz','qweqw','avc','qweqw','iuyo']
>>> for i in myList:
print (i)
zzz
qweqw
avc
qweqw
iuyo
while循环
这个比较简单
>>> a=
>>> :
a=a+
>>> print (a)
使用函数
用range函数来创建列表
>>> myList=list(range(0,5)) >>> print (myList) [0, 1, 2, 3, 4]
定义函数
使用关键字def来定义,注意后面有个:
>>> def testfunc(myname):
print ('hello %s' % myname)
>>> testfunc('Jack')
hello Jack
注意函数内的变量不能在函数外使用,函数外的变量可以在函数内使用
模块
通过import导入模块
>>> import time >>> print (time.asctime()) Sun Aug 17 16:34:26 2014
sys.stdin.readline()读一行字符串
>>> import sys >>> a=int(sys.stdin.readline()) >>> print (a) >>> print (sys.stdin.readline()) abc xxx abc xxx >>> x,y=sys.stdin.readline().split() >>> print (x) >>> print (y)
split是字符串的函数,返回的结果可以存在一个列表里,但是结果是str。如果需要整数,需要用int转化一下。
类与对象
以下分别是创建基类,派生类和创建对象
>>> class Animals:
pass
>>> class Mammals(Animals):
pass
>>> p=Mammals()
self参数可以用来从类中的一个函数调用另外的一个函数。self其实就是指该对象。
>>> class Animals:
def move(self):
pass
def dance(self):
self.move()
pass
初始化对象
用__init__来初始化对象。注意前后都是两个_
>>> class Animals:
def __init__(self,age):
self.age=age
pass
>>> a=Animals()
>>> print (a.age)
=没有创建新对象
>>> a=Animals() >>> print (a.age) >>> b=a >>> b.age= >>> print (a.age)
说白了b和a指向的都是同一个对象
对于list也是同样
>>> myList1=[111,222,333]
>>> myList2=myList1
>>> myList2[0]=999
>>> print (myList1)
[999, 222, 333]
>>> myList2.append(555)
>>> print (myList1)
[999, 222, 333, 555]
这里会发现其实在赋值之后两个变量还是指向同一个对象。
用copy模块来复制
>>> import copy >>> a=Animals() >>> b=copy.copy(a) >>> b.age= >>> print (a.age) >>> print (b.age)
这样a和b分别指向不同的对象了。
但是对于list呢。
>>> myList1=[,,] >>> myList2=copy.copy(myList1) >>> myList2[]= >>> print (myList1) [, , ] >>> print (myList2) [, , ] >>> myList2.append() >>> print (myList2) [, , , ]
但是注意int属于基本数据类型
>>> a=Animals() >>> b=Animals() >>> myList1=[a,b] >>> myList2=copy.copy(myList1) >>> myList2[].age= >>> print (myList1[].age) >>> print (myList2[].age)
可以发现copy是浅拷贝,也就是说它拷贝了list却没有拷贝list里面的对象,两个list里存的其实还是相同的对象。但是这是两个不同的list。
对此有与copy对应的deepcopy,它可以创建新的对象。
>>> a=Animals() >>> b=Animals() >>> myList1=[a,b] >>> myList2=copy.deepcopy(myList1) >>> myList2[].age= >>> print (myList1[].age) >>> print (myList2[].age)
python入门笔记的更多相关文章
- Python入门笔记(13):列表解析
一.列表解析 列表解析来自函数式编程语言(haskell),语法如下: [expr for iter_var in iterable] [expr for iter_var in iterable i ...
- [Python]Python入门笔记:语法基础
Python笔记 一.基本语法 1.1 注释 文档注释: """contents""" 多行注释: ''' contents ''' 单行注 ...
- python 入门笔记
1.pip包安装 pip install *** pip 中http和https代理设置(/etc/profile) 2.强制保存 :w !sudo tee % 3.cffi是python调用C的包 ...
- Python入门笔记(26):Python执行环境
一.python特定的执行环境 在当前脚本继续进行 创建和管理子进程 执行外部命令或程序 执行需要输入的命令 通过网络来调用命令 执行命令来创建需要处理的输出 动态生成Python语句 导入Pytho ...
- Python入门笔记(25):Python面向对象(2)
一.类 类就是一个数据结构,封装了数据和操作. 类的声明与函数的声明十分类似: class newClass(object): """class documentatio ...
- Python入门笔记(24):Python面向对象(1)速成
一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...
- Python入门笔记(23):模块
一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用.实际的角度,模块往往对应Python程序文件. 每个文件都是一 ...
- Python入门笔记(22):Python函数(5):变量作用域与闭包
一.全局变量与局部变量 一个模块中,最高级别的变量有全局作用域. 全局变量一个特征就是:除非被删除,否则他们存活到脚本运行结束,且对于所有的函数都可访问. 当搜索一个标识符(也称变量.名字等),Pyt ...
- Python入门笔记(21):Python函数(4):关于函数式编程的内建函数
一.关于函数式编程的内建函数 apply()逐渐被舍弃,这里不讨论 1.filter() #filter(func,seq) """纯Python描述filter函数&q ...
随机推荐
- FullPage.js – 轻松实现全屏滚动(单页网站)效果
FullPage.js 是一个简单而易于使用的插件,用来创建全屏滚动网站(也被称为单页网站).除了可以创建全屏滚动效果以外,也可以给网站添加一些水平的滑块效果.能够自适应不同的屏幕尺寸,包括平板电脑和 ...
- link和@import导入css文件的区别
(二者的区别其实是基础问题,但由于本人经常会忽略掉使用@import导入css文件这种方式,所以记录下来增加印象^^) 首先二者的引入方式: link:<link rel="style ...
- volatile关键字及编译器指令乱序总结
本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论. 以下是我搭建的博 ...
- 深入浅出Mybatis系列(九)---强大的动态SQL
上篇文章<深入浅出Mybatis系列(八)---mapper映射文件配置之select.resultMap>简单介绍了mybatis的查询,至此,CRUD都已讲完.本文将介绍mybatis ...
- 关于如何在cenos7.0上实现mysql数据库远程连接
设置mysql允许别的客户机控制的权限 mysql -uroot -p #此处为本地linux帐号密码 select user,host from mysql.user; #查看mysql表对应use ...
- C#中XML和json互相转换
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Xm ...
- HTML 表格<table><caption><th><tr><td><thead><tbody><tfoot><col><colgroup>
<table>标签: 定义和用法: <table>标签定义HTML表格. 简单的HTML表格由table元素以及一个或多个tr.th或td元素组成. tr元素定义表格行,th元 ...
- ArcMap Add-in插件开发中解决VS调试时断点不会命中的问题
在VS2010中进行ArcMap Add-in插件开发(ArcEngine10.1,ArcGIS10.1),运行时为.NET4.0,在程序中设置了断点进行调试,但是运行后程序并不会在断点处停止,且原来 ...
- 2013年度最强AngularJS资源合集
原文在这里 2013年度最强AngularJS资源合集 来看我的视频教程,国内第一款完整的AngularJS视频教程http://www.imooc.com/learn/156 司徒正美 写道 htt ...
- css3实现逐渐变大的圆填充div背景的效果
手机端现在的一些应用会运用上这样一个效果,就是duang的一下出现一个圆变大直到填充整个div,动感十足. 想到css3的scale属性,就自己来实现一下. <div id="bcd& ...