#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
import calendar student = {"age": 7,"name": "yzh"}
for key in student.keys():
if key == "name":
print student[key]
else:
print "不是需要的名称"
list = [3,12,34,45,35,67,8]
list1=[]
list2=[]
while len(list)>0:
#list.pop()默认从最后一个元素开始吐出,当然可以指定下标
number = list.pop()
if number % 2 ==0:
list1.append(number)
else:
list2.append(number)
print list1
print list2
print list2.pop(2)
#del list1[2] 删除列表元素,len(list),max(list),min(list),list.append(obj),list.count(obj)
#
aList = [123, 'Google', 'Runoob', 'Taobao', 'Facebook']; #aList.sort();
aList.insert(0, "ooo")
print aList.remove(123)
aList.reverse()
print aList
aList.extend(["455",234])
print aList #python字符串比较
a="ssd"
b="ssd"
print a==b
print cmp(a,b) #返回0代表相当,大于0代表大于,python3被移除 #字典操作cmp(dict1, dict2),len(dict),str(dict),type(variable),dict.values(),dict.has_key(key), dict.items()
#dict.keys(),dict.values(),dict.update(dict2),dict.clear() #time
print time.time()
print time.localtime()
print time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) print calendar.month(2018,1) #函数
def add(str):
print str
return;
add("sssssss") print type("i am a girl".split(" ")) time.sleep(10) print "稍等"
#python正则
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re #匹配策略:.匹配任意除换行符“\n”外的字符;*表示匹配前一个字符0次或无限次;+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复;
# .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
#正则表达式,re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
#匹配成功re.match方法返回一个匹配的对象,否则返回None。
#我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
# match严格匹配,从第一个开始,"abc"在"abcdefgabc"出现一次
matchobj = re.match(".*?[bc]", "abcdefgabc")
print(matchobj) #
print(type(matchobj))
print(matchobj.group(0)) # 挖掘的第一个匹配ab #re.search 扫描整个字符串并返回第一个成功的匹配。
#re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
print(re.match('com', 'www.runoob.com'))
print(re.search('com', 'www.runoob.com').group()) #替换:Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
#re.sub(pattern, repl, string, count=0, flags=0),pattern : 正则中的模式字符串。repl : 替换的字符串,也可为一个函数。
# string : 要被查找替换的原始字符串。count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配
#$表示字符串的结尾,所以加上$表示匹配的内容必须在字符串的结尾
#\D匹配任意非数字,r代表非转义 phone = "2004-959-559 # 这是一个国外电话号码"
# 删除字符串中的 Python注释
num = re.sub(r'#.*$', "", phone)
print "电话号码是: ", num
# 删除非数字(-)的字符串
num = re.sub(r'\D', "", phone)
print "电话号码是 : ", num #正则表达式模式语句
#re.compile compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。 pattern = re.compile(r'\d+')
m = pattern.match('one12twothree34four', 3, 10)
print m.group(0)
m.start(0)
m.end(0)
m.span(0) pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I)# re.I 表示忽略大小写
m = pattern.match('Hello World Wide Web')
print m.group(0)
print m.group(1)
print m.group(2)#上面一个括号是一组,有几个括号就返回几组 #\d匹配任意数字,等价于 [0-9]. +匹配1个或多个的表达式。[...] 用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k';不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
#^ 匹配字符串的开头 re{ n}精确匹配 n 个前面表达式。例如, o{2} 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的两个 o。
#re{ n,} 匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。"o{1,}" 等价于 "o+"。"o{0,}" 则等价于 "o*"。
#re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
#a| b 匹配a或b ;(re) 匹配括号内的表达式,也表示一个组
#\w 匹配字母数字及下划线;\W 匹配非字母数字及下划线 \s匹配任意空白字符,等价于 [\t\n\r\f].\S匹配任意非空字符
#\A 匹配字符串开始 \Z匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 \z 匹配字符串结束
#\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。\B匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
#\n, \t, 等. 匹配一个换行符。匹配一个制表符。等 line = "Cats are smarter than dogs"
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print "No match!!" #正则表达式修饰符常用 re.I使匹配对大小写不敏感;re.M多行匹配,影响 ^ 和 $ #findall,在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
import re pattern = re.compile(r'\d+') # 查找数字
result1 = pattern.findall('runoob 123 google 456')
result2 = pattern.findall('run88oob123google456', 0, 10) print(result1)
print(result2) #re.finditer,和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
it = re.finditer(r"\d+","12a32bc43jf3")
for match in it:
print (match.group() ) #re.split,split 方法按照能够匹配的子串将字符串分割后返回列表
print re.split('\W+', 'runoob, runoob, runoob.') for i in range(1, 5, 1):
print i
#python3 与python2不同
#print语句没有了,取而代之的是print()函数。
#在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。
#由于 Python3.X 源码文件默认使用utf-8编码,这就使得以下代码是合法的:中国 = 'china',print(中国)
#在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。2中1 / 2=0;3中1/2=0.5
#Python 2.x中不等于有两种写法 != 和 <>
#Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯 #多线程
#Python中使用线程有两种方式:函数或者用类来包装线程对象。
#函数式:调用thread模块中的start_new_thread()函数来产生新线程。
#!/usr/bin/python
# -*- coding:UTF-8 -*- #多线程
#Python中使用线程有两种方式:函数或者用类来包装线程对象。
#函数式:调用thread模块中的start_new_thread()函数来产生新线程。 import time
import thread
import threading def print_time(threadName,delay):
for i in range(1,5,1):
print i
time.sleep(delay)
print ""+threadName + str(time.localtime()) try:
thread.start_new_thread(print_time,("thread1",2, ))
thread.start_new_thread(print_time,("thread2",2, ))
time.sleep(20)#注,不写这一句会报错,因为没设置守护线程,执行完主线程后会报错
except:
print "Error: unable to start thread" #线程模块:Python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。
#threading 模块提供的其他方法:
#threading.currentThread(): 返回当前的线程变量。run(): 用以表示线程活动的方法。start():启动线程活动。
#join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。
#getName(): 返回线程名。setName(): 设置线程名。 def music(func):
for i in range(2):
print "I was listening to %s. %s" %(func,time.ctime())
time.sleep(1) def move(func):
for i in range(2):
print "I was at the %s! %s" %(func,time.ctime())
time.sleep(5) threads = []
t1 = threading.Thread(target=music,args=(u'爱情买卖',))
threads.append(t1)
t2 = threading.Thread(target=move,args=(u'阿凡达',))
threads.append(t2) if __name__ == '__main__':
for t in threads:
t.setDaemon(True)
t.start()
t.join()
print "ssss" #setDaemon(True)将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置为守护线程程序会被无限挂起。
# 子线程启动后,父线程也继续执行下去,当父线程执行完最后一条语句print "all over %s" %ctime()后,没有等待子线程,直接就退出了,同时子线程也一同结束。
#只对上面的程序加了个join()方法,用于等待线程终止。join()的作用是,在子线程完成运行之前,这个子线程的父线程将一直被阻塞。 #join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,
# 才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法。 #setDaemon()方法。主线程A中,创建了子线程B,并且在主线程A中调用了B.setDaemon(),这个的意思是,把主线程A设置为守护线程,这时候,要是主线程A执行结束了,就不管子线程B是否完成,
# 一并和主线程A退出.这就是setDaemon方法的含义,这基本和join是相反的。
# 此外,还有个要特别注意的:必须在start() 方法调用之前设置,如果不设置为守护线程,程序会被无限挂起。
#json
#!/usr/bin/python
# -*- coding: UTF-8 -*- import json #json.dumps 用于将 Python 对象编码成 JSON 字符串。
data = {"name":"yzh","age":18}
print json.dumps(data) #json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
str = '{"age": 18, "name": "yzh"}'
maptext = json.loads(str)
for key in maptext:
print key
print maptext[key]

#unittest

#针对发现做一个测试框架实例

#如何写接口测试用例

#python高级,包括一些框架,算法的使用

#用java 实现全套上述逻辑,并学习写代码覆盖率

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import practice;
practice.add("ssssssssssss") #try:
#
#except Exception,err:
#
#else:
# #python面向对象 class Employee:
count = 0;
def __init__(self,name,salary):
self.name = name;
self.salary = salary;
Employee.count += 1 def displaycount(self):
print Employee.count; emp1 = Employee("Zara",2000);
emp2 = Employee("Manni",5000); emp1.displaycount() #继承
class Employer(Employee):
def __init__(self,name,salary):
self.name = name;
self.salary = salary;
Employee.count += 1 def displaycount(self):
print "子类方法" emper = Employer("ss",3455)
emper.displaycount() #反转英文句子
def reverseFun1(str):
lists = list(str.split(' '))
print lists
lists.reverse()
print " ".join(lists)
return; strr = " i am a girl ";
reverseFun1(strr)

python 基础语法练习回顾的更多相关文章

  1. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  2. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  3. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  4. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  5. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  6. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  7. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  8. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  9. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

随机推荐

  1. python多线程不能利用多核cpu,但有时候多线程确实比单线程快。

    python 为什么不能利用多核 CPU  GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁.  1.最开始时候设计GIL是 ...

  2. 运输计划NOIP2015Day2T3

    运输计划 题目描述 公元 2044 年,人类进入了宇宙纪元. L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条 航道连通了 L 国的所有星球. 小 P 掌管一 ...

  3. java 执行https的请求

    普通的get和post请求只能执行http的请求,遇到的了https的就歇菜了,需要SSL安全证书处理. 该方法只能用jdk1.7和1.8进行处理,jdk1.6会报Could not generate ...

  4. 数据库session立即生效(64---8192) SCOPE参数

    SCOPE=MEMORY|SPFILE|BOTH 指示了修改参数时的“作用域”: SCOPE=MEMORY :只在实例中修改,重启数据库后此次修改失效. SCOPE=SPFILE :只修改SPFILE ...

  5. 【ubuntu】-桌面假死的解决办法

    第一,通过ctrl+art+F1(1-6),启动本地终端 切换到了字符界面tty1 第二,查询进程,ps -e |grep tty7 得到tty7的pid号 第三,杀死tty7的进程 , kill 9 ...

  6. 下拉框click事件与搜索框blur事件的爱恨纠葛

    还原车祸现场 功能类似于百度搜索,搜索框输入内容,下拉框显示候选项,点击候选项就选择候选项,然后下拉框隐藏,点击外面就直接隐藏下拉框,于是我写了以下代码 //参会单位联想 $('input[name= ...

  7. 在linux上安装python, jupyter, 虚拟环境(virtualenv)以及 虚拟环境管理之virtualenvwraper

    一, 安装python31.下载python3源码 wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz2.解压缩源码包,去 ...

  8. 使用nginx代理kibana并配置登录验证

    由于kibana不支持登录验证,谁都可以访问,放到公网就不合适了,这里配置用nginx进行代理: 生成密码文件 如果安装了httpd可以用htpasswd,比较方便: htpasswd -c /roo ...

  9. Bugku-CTF之never give up

    Day23 never give up http://123.206.87.240:8006/test/hello.php   本题要点:url编码,base64编码,代码审计,php函数       ...

  10. Oracle中connect by用法示例

    在工作中常常会遇到一些数据表包含父子关系的数据,比如行业.地区等等,如果需要将其节点按父子关系一步一步列出来,就需要使用connect by了. 如有由自身行业代码basecode和父行业代码pare ...