python基础学习笔记 - 备忘
基础中的基础
Python标识符
命名规则:
- Python标识符区分大小写。
- 可以包括英文、数字以及下划线,但不能以数字开头。
- 以下划线开头的标识符是有特殊意义的:
a) 以单下划线开头(如_foo)的代表保护变量(protected),需要通过类提供的接口进行访问,不能用import导入。
b) 以双下划线开头(如_ _foo)代表类的私有成员(private)。文本上被替换为_classname_ _foo,其中classname是当前类名,并带上一个下划线做前缀。
c) 以双下划线开头并结尾(如_ _foo_ _)代表python中特殊方法专用的标识符,如_ _init_ _()代表类的构造函数。
Python保留字
Python注释
单行注释使用 #
多行注释使用 3个单(双)引号
Python程序基本框架
键盘输入语句 str1 = raw_input(“input a string:”) – 将用户输入作为字符串
输出语句 print()
格式化输出:
查看变量类型 type()
查看变量地址 id()
x=12 和 x=13 -- x地址不同
y=13 和 x=13 -- x,y地址相同
故:变量变的不是内容而是指向内存中的地址
Python字符串基础
字符串中字符位置是从0开始的。
str1 = r”aa\nbb” r表示的是原样输出字符内容(关闭转义机制)
字符串的一些基本操作:
a) + 字符串连接;* 字符串重复;s[i:j]切片(i从0开始,不包含j);s[::-1]字符串反转。
b) len() 放回元素个数;
c) str1.find(s, beg, end) 找到返回索引值,否则返回-1。s – 查找字符串;beg – 起始索引(默认为0);end – 结束索引(默认为len(str1))。
d) str1.strip() 去除首位空格;str1.split() 拆分字符串。
e) str1.upper() 和str1.lower() 字符串大小写转化
f) str1.replace(‘ori’, ‘new’) 字符替换。
g) 判断字符串
i. str1.isalnum() 是字母或数字?
ii. str1.isalpha () 是字母?
iii. str1.isdigit() 是数字?
iv. str1.istitle() 是首字母大写?
v. str1.isspace() 是空白字符?
h) isinstance() 判断对象
i. isinstance(1, int) -> True
ii. isinstance(‘1’, float) -> False
iii. isinstance([1,2], (list, tuple, int)) -> True
Python列表基础
列表中的数据是可修改的!元组的数据是不可修改的!
基本操作:
a) li1.append() ; li1.extend(); li1.count(value);
b) li1.remove(value) 删除第一个出现的value; del li1[index] 删除li1中第index位元素;ch = li1.pop(index) 删除索引为index的元素,值返回ch。
c) li1.reverse() 逆序(直接对li1进行修改,无返回值);li1.sort() 从小到大排序(无返回值, li1.sort(reverse = True) 从大到小排序)。
d) x in y x在y中 -> True; x不在y中 -> False。
e) 复制问题 li1 = li2[:] 深拷贝(等同于 li1 = li2.copy()); 浅拷贝li1 = li2(li1会随li2的变化而变)
f) li1.clear() 清空列表,列表仍存在[]
Python 列表新知:
list是python的内置数据类型,list中的数据类型不必相同,而array中的数据类型必须完全相同。
list中保存的是数据的存放地址(指针),例如
list1 = [1, 2, 3, 'a']
实际list1的存储需要4个指针和4个数据,这就增加了大量的存储资源。那么怎么优化呢? 实际应用中当没有足够的资源可以用时,通常会使用array库而不是list,这样会省3-4倍的内存空间。
Python字典基础
字典可以以键值对的形式存储信息。
基本操作:
1. 创建字典
dict1 = {} # 创建空的字典 dict([1, 'one'], [2, 'two'], [3,'three']) # {1:'one' , 2:'two', 3:'three'} dict1.fromkeys((1,2)) #{1: None, 2: None}
dict1.fromkeys((1,2), ‘number’) #{1: ‘number’, 2: ‘number’}
2. 访问与修改
dict1.keys() #每个键
dict1.values() #每个值
dict1.items() #每个项 dict1.get(2, '木有') # 有2的value 返回值; 无值返回‘木有’
#访问的三种形式
a[] -> 无key,报错
a.get() -> 无key,不报错,返回None
a.setdefault(5, 'five') -> 无key,添加到a dict1.clear() #清空字典 del(dict1['key']) # 删除键为‘key’的item
dict1.pop(keys) #给键弹出值 (整个items都没了)
dict1.popitem() # 随机弹出item
3. 字典的排序
sorted(dict, value, reverse)
sorted(a.items, key = lambda asd:asd[0], reverse = True) # 键 降序排列
sorted(a.items, key = lambda asd:asd[1], reverse = False) # 值 升序排列 ##注: 排序后原字典没有变,顺序依旧
短路逻辑
3and4 == 4
3or4 == 3
作用域
python变量的作用域分成两种:全局作用域和局部作用域。
x = 1 # 全局变量 def func():
x = 10 #局部变量
全局变量可以被程序任何地方访问,但若要对其进行修改只能在全局进行操作!若要在局部修改全局变量就会报错。还要注意一点:局部访问变量时,如若没找到就会不断的逐步向外层查找,直到找到,找不到会报错。
x = 1 def func():
x += 10
# 报错!
进阶1:Python实用语法
三元操作符
small = x if x < y else y
相当于:
if x < y:
small = x
else:
small = y
列表推导式
[有关于A的表达式 for A in B]
例如: [i*i for i in range(10)] --> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
特殊语法
filter(function, sequence)
对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回。
str = ['a', 'b', 'c', 'd'] def fun1(s):
return True if s != 'a' else False ret = filter(fun1, str) print(ret)
## ['b', 'c', 'd']
map(function, sequence)
对sequence中的item依次执行function(item), 将执行结果组成一个List返回
str = ['a', 'b', 'c', 'd'] def fun2(s):
return s + ".txt" ret = map(fun2, str) print(ret)
##['a.txt', 'b.txt', 'c.txt', 'd.txt']
lambda
lambda可以简化函数的定义的书写形式,使得代码更为简洁。
g = lambda x:x+1
"""
相当于
def g(x):
return x+1
"""
print(g(2))
# lambda x:x+1(3)
#
python基础学习笔记 - 备忘的更多相关文章
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- Python基础学习笔记(十三)异常
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...
- Python基础学习笔记(十二)文件I/O
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-files-io.html ▶ 键盘输入 注意raw_input函 ...
- Python基础学习笔记(十一)函数、模块与包
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...
- Python基础学习笔记(十)日期Calendar和时间Timer
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-date-time.html 3. http://www.liao ...
- Python基础学习笔记(九)常用数据类型转换函数
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...
- Python基础学习笔记(八)常用字典内置函数和方法
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...
随机推荐
- Why is it called “armature” instead of “skeleton”? or perhaps “rig”?
Great question, I’ve always assumed armature/skeleton to be the same thing, here’s a quote from an a ...
- Python开发【第六篇】:面向对象
configparser模块 configparser用于处理特定格式的文件,其本质是利用open来操作文件. 文件a.txt [section1] k1 = 123 k2:v2 [section ...
- [leetcode]35. Search Insert Position寻找插入位置
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
- tomcat7闪退
问题是我昨天运行的好好的,今天加了些代码,tomcat7就会启动闪退.我把conf/server.xml中的<Context />去掉,tomcat又能正常启动! 那么问题出在哪里呢? 我 ...
- 集群环境下定时调度的解决方案之Quartz集群
集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是 ...
- git 添加分支并与远程连接
今天由于项目需要,要改版,为了不影响当前网站,所以用分支来管理 首先,在本地添加分支dev git checkout -b dev 提交远程,让同事拉取这个分支,我是直接push了,推到远程. 同事在 ...
- ipcam
ipcam也叫ip network camera,就是基于internet protocol的网络摄像机,同普通摄像头或者网眼的主要区别是ipcam实际上是一台视频服务器和摄像头的集成.ipcam只要 ...
- mysql查询数据
select column,column from table where clause [limit n] [offset]; 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用W ...
- CSS样式简介
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS不仅可以静态 ...
- Python11/12--GIL/互斥锁/进程池
GIL1.全局解释器锁? 锁就是线程里面那个锁 锁是为了避免资源竞争造成数据的错乱 2.python程序的执行过程? 1.启动解释器进程 python.exe 2.解析你的py文件并执行它 每个py程 ...