iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python-语法模板大全(常用)
  • 434
分享到

Python-语法模板大全(常用)

语法模板常用 2023-01-30 23:01:48 434人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录 1.怎么存数据 变量: 字符串: 不可变对象 列表: 元组: 字典: 三大容器的

目录

  • 1.怎么存数据
    • 变量:
    • 字符串: 不可变对象
    • 列表:
    • 元组:
    • 字典:
    • 三大容器的遍历方法
  • 2.怎么用数据
    • 数字操作符:
    • 判断循环:
  • 3.函数
  • 4. python核心编程
    • 4.1. 列表生成器
  • 5. 类和对象
    • 5.1. 定义类的模板
    • 5.2.继承
    • 5.3 多态
  • 6. io文件操作和OS目录操作
    • OS操作
    • IO文件
  • 7. 正则表达式及re模块的使用
    • 7.2. re模块的使用

插入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#%E5%AD%97%E7%AC%A6%E4%B8%B2

列表:

[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))

数字操作符:

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

判断循环:

  • 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)
# 位置参数
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.1. 列表生成器

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

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

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')

主要参考资料为:

  • Python正则表达式指南

    6.1. 正则表达式语法

  • re模块的使用

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

--结束END--

本文标题: Python-语法模板大全(常用)

本文链接: https://www.lsjlt.com/news/180767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python-语法模板大全(常用)
    目录 1.怎么存数据 变量: 字符串: 不可变对象 列表: 元组: 字典: 三大容器的...
    99+
    2023-01-30
    语法 模板 常用
  • Vue.js中有哪些常用的模板语法
    本篇文章给大家分享的是有关Vue.js中有哪些常用的模板语法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、文本渲染Vue支持动态渲染文本,...
    99+
    2024-04-02
  • SQL常用语句大全
    我们在进行开发工作时,对数据库的操作是必不可少的,熟练掌握SQL语句可以让我们对数据库的数据处理变得非常简单,所以学习SQL语句是非常有必要的,下面汇总了一些常用的SQL语句 SQL语句的类型 DDL(Data Definition Lan...
    99+
    2023-08-31
    sql 数据库
  • python基础语法大全
    目录          1.jupyter简单操作 2.print()用法 3.math 举一个平方的例子 4.while for control+[/] 左/右缩进 (缩进是四个空格) 5.if        if_else       ...
    99+
    2023-09-27
    大数据 python jupyter list pycharm
  • python编程语法大全
    python 的基本数据类型包括:整数、浮点数、字符串、布尔值、列表、元组、字典。此外,python 还有变量、运算符、控制流、函数、类、缩进、注释、模块和包等其他语法元素。掌握这些语法...
    99+
    2024-04-20
    python
  • python常用资源大全
     Python基本安装:      * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站;      * http://www.activestate.com/ 集成多个有...
    99+
    2023-01-31
    常用 大全 资源
  • VUE 模板语法陷阱:避免常见错误
    Vue 是一个流行的 JavaScript 框架,其模板语法提供了丰富的功能,使构建 Web 应用程序变得更加容易。然而,在使用 Vue 模板语法时,很容易陷入一些常见的陷阱,这些陷阱可能导致代码错误、性能问题或不可预期的行为。 1. ...
    99+
    2024-03-04
    Vue 模板语法、陷阱、错误、最佳实践
  • Go语言常用命令大全
    Go语言常用命令大全 Go语言作为一种快速、可靠的编程语言,受到了广泛的推崇和应用。在日常开发中,掌握一些常用的命令是非常重要的。本文将介绍一些Go语言常用命令,并提供具体的代码示例,...
    99+
    2024-04-02
  • Python读写EXCEL文件常用方法大全
    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方...
    99+
    2023-09-01
    python pandas 数据分析
  • C++ 函数模板的语法和用法
    函数模板允许以类型无关的方式编写代码,提供编译时多态性。语法为 template,其中 t 为模板参数。函数模板可以用于各种任务,例如交换元素或查找数组中的最大值。在使用前必须声明模板,...
    99+
    2024-04-14
    c++ 函数模板
  • python数学建模之三大模型与十大常用算法详情
    目录前言1 三大模型与十大常用算法【简介】1-1 三大模型1-2 十大常用算法2 python数据分析之Pandas 2-1什么是pandas2-2 pandas读取文件2-3 pa...
    99+
    2024-04-02
  • 常用的SQL查询语句大全
    这篇文章主要讲解了“常用的SQL查询语句大全”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常用的SQL查询语句大全”吧!一、基础1、说明:创建数据库CREA...
    99+
    2024-04-02
  • python实用的快捷语法技巧大全
    目录前言in判断四种翻转字符串/列表的方式平方数进制转换将字符串中的小写字母转为大写字母一次性初始化多个变量打印模块路径列表去重字典和列表推导拼接字符串循环枚举索引开启文件分享巧用e...
    99+
    2024-04-02
  • python三大模型与十大常用算法实例发现
    这篇文章主要介绍了python三大模型与十大常用算法实例发现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python三大模型与十大常用算法实例发现文章都会有所收获,下面我们一起来看看吧。1 三大模型与十大常用...
    99+
    2023-07-02
  • Stream流的常用方法大全
    目录 前言 1. forEach遍历 2. filter过滤 3. distinct去重 4. limit截取 5. skip跳过 6.排序sorted 7.最值max,min 8. 统计reduce 9. List结构转换Map结构 10...
    99+
    2023-09-21
    java 开发语言 spring boot
  • Vue3中的模板语法怎么使用
    这篇文章主要介绍“Vue3中的模板语法怎么使用”,在日常操作中,相信很多人在Vue3中的模板语法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中的模板语法怎么使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • MongoDB中的常用语句总结大全
    前言 MongoDB与MySQL基本语句还是有很大区别的,今天再介绍一下MongoDB的一些常用的基本语句,下面话不多说了,来一起看看详细的介绍吧 MOngoDB  删除语句 delete()删...
    99+
    2024-04-02
  • golang 模板用法
    Golang是一门开源的编程语言,是由Google公司开发的。它被设计成一门静态类型、高效且具有强大支持并发的语言,可以轻松处理高负载的网络服务。随着互联网的迅速发展,网页设计变得更加重要。因此,开发人员需要一个在网页设计方面非常友好且方便...
    99+
    2023-05-21
  • Python全栈之模板渲染详解
    目录1. 标签1.1 for循环标签1.2 if标签1.3 with标签1.4 csrf token标签2. 模板继承3. 组件4. 自定义过滤器5. 自定义标签6. inclusi...
    99+
    2024-04-02
  • C++ 函数模板的语法和使用方法?
    函数模板是用于编写可适用于不同数据类型的函数的工具。通过指定类型参数,可以创建函数模板,并使用该模板实例化特定数据类型的函数。例如,可以创建 max() 模板函数以获取两个值的较大值,并...
    99+
    2024-04-24
    c++ 函数模板
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作