以下语法基于Python 3.1
一. 函数默认值
Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了。所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值。使用类时能够方便的创建类,而不需要传递一堆参数。
只要在函数参数名后面加上 '=defalut_value',函数默认值就定义好了。有一个地方需要注意的是,有默认值的参数必须在函数参数列表的最后,不允许将没有默认值的参数放在有默认值的参数后,因为如果你那样定义的话,解释器将不知道如何去传递参数。
示例:
def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
flag=True
while flag:
ok = input(prompt)
print(ok)
if ok in ('y', 'yes'):
flag=True
if ok in ('n', 'no'):
flag=False
retries = retries - 1
if retries < 0:
raise IOError
'refusenik user'
print(complaint)
ask_ok('please type in the status(yes/no):')
二. 使用函数默认值来实现函数静态变量的功能
Python中是不支持静态变量的,但是我们可以通过函数的默认值来实现静态变量的功能。
当函数的默认值是内容是可变的类时,类的内容可变,而类的名字没变。(相当于开辟的内存区域没有变,而其中内容可以变化)。
这是因为python中函数的默认值只会被执行一次,和静态变量一样,静态变量初始化也是被执行一次。
看下面的程序片段:
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
print(f(4,['x']))
print(f(5))
输出:
>>>
[1]
[1, 2]
[1, 2, 3]
['x', 4]
[1, 2, 3, 5]
>>>
最后 “print f(5)”的输出是 “[1, 2, 3, 5]”,因为 “print f(4,['x'])”时,默认变量并没有被改变,因为默认变量的初始化只是被执行了一次(第一次使用默认值调用),初始化执行开辟的内存区(我们可以称之为默认变量)没有被改变,所以最后的输出结果是“[1, 2, 3, 5]”。
三. 多线程
python是支持多线程的,并且是native的线程。主要是通过thread和threading这两个模块来实现的。
python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用。
threading模块里面主要是对一些线程的操作对象化了,创建了叫Thread的class。
一般来说,使用线程有两种模式,一种是创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的 class里。
3.1 Python thread实现多线程
#-*- encoding: gb2312 -*-
import string, threading, time
def thread_main(a):
global count, mutex
# 获得线程名
threadname = threading.currentThread().getName()
for x in range(0, int(a)):
# 取得锁
mutex.acquire()
count = count + 1
# 释放锁
mutex.release()
print('threadname: %s,threadnum:%d,threadcount:%d/n' %(threadname, x, count))
print('-----/n')
time.sleep(1)
def main(num):
global count, mutex
threads = []
count = 1
# 创建一个锁
mutex = threading.Lock()
# 先创建线程对象
for x in range(0, num):
threads.append(threading.Thread(target=thread_main, args=(2,)))
# 启动所有线程
for t in threads:
t.start()
# 主线程中等待所有子线程退出
for t in threads:
t.join()
if __name__ == '__main__':
num = 4
# 创建4个线程
main(4)
运行结果:
>>>
threadname: Thread-1,threadnum:0,threadcount:2
threadname: Thread-3,threadnum:0,threadcount:4
threadname: Thread-2,threadnum:0,threadcount:3
threadname: Thread-4,threadnum:0,threadcount:5
-----
-----
-----
-----
threadname: Thread-1,threadnum:1,threadcount:6
threadname: Thread-3,threadnum:1,threadcount:7
threadname: Thread-2,threadnum:1,threadcount:8
threadname: Thread-4,threadnum:1,threadcount:9
-----
-----
-----
-----
>>>
3.2 Python threading实现多线程
#-*- encoding: gb2312 -*-
import threading
import time
class Test(threading.Thread):
def __init__(self, num):
threading.Thread.__init__(self)
self._run_num = num
def run(self):
global count, mutex
threadname = threading.currentThread().getName()
for x in range(0, int(self._run_num)):
mutex.acquire()
count = count + 1
mutex.release()
print('threadname: %s,threadnum:%d,threadcount:%d/n' %(threadname, x, count))
print('-----/n')
time.sleep(1)
if __name__ == '__main__':
global count, mutex
threads = []
num = 4
count = 1
# 创建锁
mutex = threading.Lock()
# 创建线程对象
for x in range(0, num):
threads.append(Test(2))
# 启动线程
for t in threads:
t.start()
# 等待子线程结束
for t in threads:
t.join()
结果:
>>>
threadname: Thread-1,threadnum:0,threadcount:2
threadname: Thread-3,threadnum:0,threadcount:4
threadname: Thread-2,threadnum:0,threadcount:3
threadname: Thread-4,threadnum:0,threadcount:5
-----
-----
-----
-----
threadname: Thread-1,threadnum:1,threadcount:6
threadname: Thread-3,threadnum:1,threadcount:7
-----
threadname: Thread-2,threadnum:1,threadcount:8
threadname: Thread-4,threadnum:1,threadcount:9
-----
-----
-----
>>>
四. 字符串操作
4.1.连接字符串
def strcat(sStr1,sStr2):
sStr1 += sStr2
return sStr1
print(strcat('strcat','append'))
4.2.查找字符
def strchr(sStr1,sStr2):
nPos = sStr1.index(sStr2)
return nPos
print(strchr('strchr','r'))
4.3.字符串长度
>>> print(len('tianlesoftware'))
14
4.4.将字符串中的小写字符转换为大写字符
>>> sStr1='TianleSoftware'
>>> print(sStr1.upper())
TIANLESOFTWARE
>>> print(sStr1.lower())
tianlesoftware
4.5.追加指定长度的字符串
def strncat(sStr1,sStr2,n):
sStr1 += sStr2[0:n]
return sStr1
print(strncat('12345','abcdef',3))
4.6.将字符串前n个字符替换为指定的字符
def strnset(sStr1,ch,n):
sStr1 = n * ch + sStr1[3:]
return sStr1
print(strnset('12345','r',3))
4.7. 翻转字符串
>>> sStr1 = 'abcdefg'
>>> sStr1 = sStr1[::-1]
>>> print(sStr1)
gfedcba
4.8.查找字符串
>>> sStr1 = 'abcdefg'
>>> sStr2 = 'cde'
>>> print(sStr1.find(sStr2))
2
4.9. 分割字符串
>>> sStr1 = 'ab,cde,fgh,ijk'
>>> sStr2 = ','
>>> sStr1 = sStr1[sStr1.find(sStr2) + 1:]
>>> print(sStr1)
cde,fgh,ijk
五. 列表(List) 操作
5.1 创建列表
sample_list = ['a',1,('a','b')]
5.2 Python 列表操作
sample_list = ['a','b',0,1,3]
5.2.1 得到列表中的某一个值
value_start = sample_list[0]
end_value = sample_list[-1]
5.2.2 删除列表的第一个值
del sample_list[0]
5.2.3 在列表中插入一个值
sample_list[0:0] = ['sample value']
5.2.4 得到列表的长度
list_length = len(sample_list)
5.2.5 列表遍历
for element in sample_list:
print(element)
5.3 Python 列表高级操作/技巧
5.3.1 产生一个数值递增列表
num_inc_list = range(30)
#will return a list [0,1,2,...,29]
5.3.2 用某个固定值初始化列表
initial_value = 0
list_length = 5
sample_list = [ initial_value for i in range(10)]
sample_list = [initial_value]*list_length
# sample_list ==[0,0,0,0,0]
整理自网络
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
分享到:
相关推荐
python基础语法总结介绍,Python,if条件,循环,函数,⾯向对象,可变类型,字符串,引用,文件操作,异常处理,模块与包
本资料适用于初学者和有一定编程基础的人群,旨在帮助读者快速掌握Python基础语法知识,为进一步学习Python打下坚实的基础。 本资料主要涵盖Python基础语法的各个方面,包括变量、数据类型、运算符、流程控制、函数...
python基础语法全解,帮助初学者快速全面掌握基础知识
python基础语法知识.pdf
python基础语法合集 python基础语法合集TXT python基础语法合集下载 python基础语法合集下载免费 ...python基础语法及知识总结 python基本语法 python基础语法手册pdf python语法基础知识pdf python基础语法菜鸟教程
本项目是基于《Python学习手册》进行的Python基础语法实战演练,旨在通过实践加深对Python语言基础知识的理解。项目主要采用Python语言编写,包含了578个文件,具体文件类型分布如下: - Python脚本文件(.py):...
这是一个Python基础语法+核心知识点+面试集锦资源合集,适合学习知识点梳理,手边必备工具书,非常实用,通俗易懂,非常详细,需要的朋友可下载试试! Python内置对象类型:数字、字符串、列表、元组、字典、集合、...
python中一些知识点总结,个人初步理解,可能会有些错误
one 01 第一章:python基础语法 快速入门Python基础教程-Python基础知识大全PPT模板全文共33页,当前为第2页。 第一章:python基础语法 安装解释器编辑器了解语言的区别以及python的特点 python中的变量的使用定义...
python基础知识 python基础知识 微信公众号-IT赶路⼈,专注分享与IT相关的知识,关注我,⼀起升职加薪! Python,您⼀定听说过它,并且想知道这门语⾔有什么特别之处。 随着机器学习和⼈⼯智能的兴起,摆脱它成为...
Python基础语法PPT,说明了Python与C语言之间最大的两个区别,其中讲解的Python语法主要包括:Python基础知识、函数、面向对象、数据类型、条件&循环、文件操作、模块、异常,并列出了Python中常见数据类型对应的...
python基础教程第⼆版答案-Python基础教程(第2版) Python是⼀种解释型、⾯向对象、动态数据类型的⾼级程序设计语⾔,是*受欢迎的程序设计语⾔之⼀。Python语⾔简洁,语法简单,很 适合作为学习编程的⼊门语⾔。 ...
Python基础语法和入门知识笔记,适合初学Python的学员
文章目录02-python 基础语法知识-02-函数函数是什么?... 今天 是 我们开始学习python基础语法知识 中比较重要的一个概念 函数 。有了函数可以让代码 写起来 更加方便 ,更加可以复用。 函数是什么? 你可以认为是
python语法基础面试题和重要知识点,之前在学习python语法结束之后总结出来了,对于一些知识点可能没有详细描述,建议有不懂的,直接看手册或者网上查找资料,培养自我学习能力。希望能对你们有用。
课程详情访问炼数成金培训网站 http://edu.dataguru.cn Python 魔鬼训练营 讲师 陈晓伍 DATAGURU专业数据分析社区 第1课:Python基础知识 课程内容: python介绍 python安装 python基础语法 python基础数据结构 ...
python基础知识培训--讲述Python的基本语法 数据结构 编程思想等等,是入门的好教程
python基础的知识整理,主要内容包括了python的基础语法和MySQL,MongoDB,Redis数据库的使用方法和python操作三种数据库的使用!
培训内容 python概述 python基础语法 Python数据类型 条件和循环 函数 模块 面向对象编程 文件相关 2023/6/9 2 第二页,共63页。 Python基础知识培训全文共63页,当前为第2页。 什么是PYTHON Python是一种开源的 、...
文章目录02-python 基础语法知识-04-异常与错误处理什么是异常异常发生时会发生什么?如何处理异常如何自己主动抛出一个异常异常的分类自定义异常如何安装 第三方的包?查看第三方包 自定义的异常总结参考文档 02-...