1.怎么存数据

插入Python数据类型.png

变量:

age =10

字符串: 不可变对象

name = "python"

a = "pythonpythonpython"

# 索引和切片
a[0] # index
a[-1]
a[0:3] # slice
a[0:6:2]
a[-1:-7:-1]
a[::-1] # slice reverse

字符串方法详见:https://www.cnblogs.com/haochen273/p/10244032.html#字符串

列表:

[1,2,3,"python"]

a = [1,2,3,"python"] 

len(a)
a[0]
[i*2 for i in a]
a.append(50)
a.insert(2,15)
a.extend([5,8,10])
a[0]="java"
"python" in a
a.index("python")
a.count(1)
a.pop(index)

元组:

(1,2,3)(不可以更改.与list类似)

字典:

{"a":100, "b":"666"}

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

d['Michael']
d['Adam'] = 67
'Thomas' in d
d.get('Thomas')
d.pop('Bob')

三大容器的遍历方法

a = [1,2,3]
for i in a:
print(i) b = (1,2,3)
for i in b:
print(b) c = {"a":10, "b":20, "c":30}
for key,value in dict.items():
print("key = %s, value = %d"%(key,value))

2.怎么用数据

数字操作符:

+、-、*、/、%、//、**

判断循环:

  • if判断:
if a>10:
b = a + 20
if b>20:
pass
elif: a>8:
pass
else:
pass
  • while循环
while i<5:
# do something
pass
i = i + 1 while true:
pass
  • for循环
for i in [1,2,3]:
print(i)
  • break和continue的使用
# break:打断全部循环
for i in [1,2,3,4,5]:
print("----")
if i==4:
break
print(i)
# continue: 打断一次循环
for i in [1,2,3,4,5]:
print("----")
if i==4:
continue
print(i)

3.函数

# 位置参数
def person(name, age):
print(name,age) # 默认参数 def person(name,age=20):
print(name, age) # 关键字参数
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw) person('hao', 20) # name: Michael age: 30 other: {}
person('hao', 20, gener = 'M', job = 'Engineer') # name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra) # 命名关键字参数
def person(name, age, *, city='Beijing', job):
print(name, age, city, job) person('Jack', 24, job = '123')
person('Jack', 24, city = 'Beijing', job = 'Engineer') # Combination
# 可变 + 关键字参数
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw) f1(1, 2, 3, 'a', 'b') # a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
f1(1, 2, 3, 'a', 'b', x=99) # a = 1 b = 2 c = 0 d = 99 kw = {'ext': None} # 默认参数 + 命名关键字参数 + 关键字参数
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) f2(1, 2, d=99, ext=None) # a = 1 b = 2 c = 0 d = 99 kw = {'ext': None}

4. Python核心编程

4.1. 列表生成器

[x * x for x in range(1, 11) if x % 2 == 0]

5. 类和对象

5.1. 定义类的模板

class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score # print(mike)
def __str__(self):
msg = "name: " + self.__name + "score: " + str(self.__score)
return msg # mike
__repr__ = __str__
# mike()
__call__ = __str__ @property
def name(self):
return self.__name @name.setter
def name(self, value):
if type(value) == str:
self.__name = value
else:
raise ValueError('Bad name') @property
def score(self):
return self.__score @score.setter
def score(self, value):
if 0 <= value <= 100:
self.__score = value
else:
raise ValueError('Bad score') def final_report(self):
if self.__score >= 90:
level = 'A'
elif self.__score >= 70:
level = 'B'
elif self.__score >= 60:
level = 'C'
else:
level = 'D'
msg = "Your final value is: " + level
return msg # 调用 mike = Student('mike', 85)
print("-" * 20 + "Print property" + "-" * 20)
print(mike)
print("name: %s" % (mike.name))
print("-" * 30 + "Print methods" + "-" * 20)
print(mike.final_report())
print("-" * 30 + "Print modified infor" + "-" * 20)
mike.name = "Obama"
mike.score = 50
print("-" * 30)
print("modified name: %s" % (mike.name))
--------------------Print property--------------------
name: mikescore: 85
name: mike
------------------------------Print methods--------------------
Your final value is: B
------------------------------Print modified infor--------------------
------------------------------
modified name: Obama

5.2.继承

class SixGrade(Student):
def __init__(self, name, score, grade):
super().__init__(name, score)
self.__grade = grade # grade是一个只读属性
@property
def grade(self):
return self.__grade def final_report(self, comments):
# 子类中调用父类方法
text_from_Father = super().final_report()
print(text_from_Father)
msg = "commants from teacher: " + comments
print(msg) print("-" * 20 + "继承" + "-" * 20)
fangfang = SixGrade('fang', 95, 6)
fangfang.final_report("You are handsome")
print(fangfang.grade)
--------------------继承--------------------
Your final value is: A
commants from teacher: You are handsome
6

5.3 多态

class SixGrade(Student):
pass class FiveGrade(Student):
pass def print_level(Student):
msg = Student.final_report()
print(msg) print_level(Student('from class', 90))
print_level(SixGrade('from subclass-1', 56))
print_level(FiveGrade('from subclass-2', 85))
Your final value is: A
Your final value is: D
Your final value is: B

6. IO文件操作和OS目录操作

OS操作

import os
# 获取当前目录的绝对路径
path = os.path.abspath('.')
# 创建一个目录
os.path.join('/Users/michael', 'testdir')
os.mkdir('/Users/michael/testdir')
# 删除一个目录
os.rmdir('/Users/michael/testdir')
# 拆分路径
os.path.split('/Users/michael/testdir/file.txt') # ('/Users/michael/testdir', 'file.txt')
os.path.splitext('/path/to/file.txt') # ('/path/to/file', '.txt')
# 重命名
os.rename('test.txt', 'test.py')
# 删除文件
os.remove('test.py')
# 列出所有python文件
[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']

IO文件

方法 特性 性能
read() 读取全部内容 一般
readline() 每次读出一行内容 占用内存最少
readlines() 读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素 最好(内存足)
write() 写文件
# 读

# 下面是read()方法的使用,“r”表示read
with open('testRead.txt', 'r', encoding='UTF-8') as f1:
results = f1.read() # 读取数据
print(results) # 下面是readline()方法的使用,“r”表示read
with open('testRead.txt', 'r', encoding='UTF-8') as f2:
line = f2.readline() # 读取第一行
while line is not None and line != '':
print(line)
line = f2.readline() # 读取下一行 # 下面是readlines()方法的使用,“r”表示read
with open('testRead.txt', 'r', encoding='UTF-8') as f3:
lines = f3.readlines() # 接收数据
for line in lines: # 遍历数据
print(line) # 写 with open('/User/test.txt', 'w') as f:
f.write('hello')

7. 正则表达式及re模块的使用

主要参考资料为:

6.1. 正则表达式语法

7.2. re模块的使用

内置的 re 模块来使用正则表达式,提供了很多内置函数:

  1. pattern = re.compile(pattern[, flag]):
  • 参数:

    • pattern: 字符串形式的正则
    • flag: 可选模式,表示匹配模式
  • 例子:
import re

pattern = re.compile(r'\d+')
  1. Pattern的常用方法
import re

pattern = re.compile(r'\d+')

m0 = pattern.match('one12twothree34four')
m = pattern.match('one12twothree34four', 3, 10) print("-" * 15 + "Match methods" + "-" * 15)
print("found strings: ", m.group(0))
print("start index of found strings: ", m.start(0))
print("end index of found strings: ", m.end(0))
print("Span length of found strigns: ", m.span(0)) s = pattern.search('one12twothree34four') print("-" * 15 + "Search methods" + "-" * 15)
print("found strings: ", s.group(0))
print("start index of found strings: ", s.start(0))
print("end index of found strings: ", s.end(0))
print("Span length of found strigns: ", s.span(0)) f = pattern.findall('one1two2three3four4', 0, 10) print("-" * 15 + "findall methods" + "-" * 15)
print("found strings: ", f) f_i = pattern.finditer('one1two2three3four4', 0, 10) print("-" * 15 + "finditer methods" + "-" * 15)
print("type of method: ", type(f_i))
for m1 in f_i: # m1 是 Match 对象
print('matching string: {}, position: {}'.format(m1.group(), m1.span())) p = re.compile(r'[\s\,\;]+')
print("-" * 15 + "Split methods" + "-" * 15)
print("split a,b;c.d: ", p.split('a,b;; c d')) p1 = re.compile(r'(\w+) (\w+)')
s1 = 'hello 123, hello 456' def func(m):
return 'hi' + ' ' + m.group(2) print("-" * 15 + "替换 methods" + "-" * 15)
print(p1.sub(r'hello world', s1)) # 使用 'hello world' 替换 'hello 123' 和 'hello 456'
print(p1.sub(r'\2 \1', s1)) # 引用分组
print(p1.sub(func, s1))
print(p1.sub(func, s1, 1)) # 最多替换一次

结果是:

---------------Match methods---------------
found strings: 12
start index of found strings: 3
end index of found strings: 5
Span length of found strigns: (3, 5)
---------------Search methods---------------
found strings: 12
start index of found strings: 3
end index of found strings: 5
Span length of found strigns: (3, 5)
---------------findall methods---------------
found strings: ['1', '2']
---------------finditer methods---------------
type of method: <class 'callable_iterator'>
matching string: 1, position: (3, 4)
matching string: 2, position: (7, 8)
---------------Split methods---------------
split a,b;c.d: ['a', 'b', 'c', 'd']
---------------替换 methods---------------
hello world, hello world
123 hello, 456 hello
hi 123, hi 456
hi 123, hello 456

Python-语法模板大全(常用)的更多相关文章

  1. python MVC、MTV 框架介绍 Django 模板系统常用语法

    Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...

  2. python库包大全(转)

    python 库资源大全 转自: Python 资源大全中文版 环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python ...

  3. Python库资源大全

    转载地址:https://zhuanlan.zhihu.com/p/27350980 本文是一个精心设计的Python框架.库.软件和资源列表,是一个Awesome XXX系列的资源整理,由BigQu ...

  4. (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md

    第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...

  5. Python库资源大全【收藏】

    本文是一个精心设计的Python框架.库.软件和资源列表,是一个Awesome XXX系列的资源整理,由BigQuant整理加工而成,欢迎扩散.欢迎补充! 对机器学习.深度学习在量化投资中应用感兴趣的 ...

  6. python爬虫:一些常用的爬虫技巧

    python爬虫:一些常用的爬虫技巧 1.基本抓取网页 get方法: post方法: 2.使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有Pr ...

  7. python语法快速入门(1)

    http://www.runoob.com/python/python-tutorial.html Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言 ...

  8. Python之路,Day21 - 常用算法学习

    Python之路,Day21 - 常用算法学习   本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的 ...

  9. 第六章:Python基础の反射与常用模块解密

    本课主题 反射 Mapping 介绍和操作实战 模块介绍和操作实战 random 模块 time 和 datetime 模块 logging 模块 sys 模块 os 模块 hashlib 模块 re ...

随机推荐

  1. The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

    使用EF时,在Limda表达式中( query.Where(x => x.CheckInDate >= bd.Date);)查询的时候抛出了这个异常,网上查到的发现,并不能解决问题. 后来 ...

  2. 基于BootstarbTable实现加载更多的方式

    在工作中,我们有时候会遇到一些需求实现每次在页面上显示的数据每次都是通过请求数据库端来实现,在不通过上一页,下一页的方式来实现我们要展示的数据,通过js请求每次加载10条或者任意数量的数据. 代码展示 ...

  3. 【Oracle RAC】Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂)

    [Oracle RAC]Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂) 2 Oracle11gR2 RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件 ...

  4. 关于加载font-awesome文字显示不出来

    关于font-awesome的网站 中文网:http://www.fontawesome.com.cn/get-started/ 官网:https://fontawesome.com/ 中文网4.7: ...

  5. 【重磅】微软开源自动机器学习工具 - NNI

    [重磅]微软开源自动机器学习工具 - NNI 在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到模型最佳效果的过程了.即使是对于有经验的算法工程师和数据科学家,有时候也很难把握其中 ...

  6. 千星项目.Net Core 2.1移植填坑记--OpenAuth.Core诞生

    背景 很早就有把OpenAuth.Net----最好用的.net权限管理工作流框架(好吧!我在吹牛

  7. 零基础如何自学java开发?

    开篇直奔主题,java 学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习. 有人指导:第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.先介绍下我 ...

  8. 【Spark篇】---SparkSql之UDF函数和UDAF函数

    一.前述 SparkSql中自定义函数包括UDF和UDAF UDF:一进一出  UDAF:多进一出 (联想Sum函数) 二.UDF函数 UDF:用户自定义函数,user defined functio ...

  9. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

  10. .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

    作者:依乐祝 原本链接:https://www.cnblogs.com/yilezhu/p/9947905.html 引子 为什么写这篇文章呢?因为.NET Core的生态越来越好了!之前玩转.net ...