小工具      在线工具  汉语词典  css  js  c++  java

Python基础语法

Python,python 额外说明

收录于:158天前

简介

Python 是一种高级脚本语言,结合了解释性、交互式和面向对象的脚本编写。解释型语言:这意味着开发过程中没有编译环节。作为解释型语言,意味着开发过程中没有编译环节,代码是逐行分析的。

Python 也是可嵌入的。例如,无法在Python中运行的代码可以使用C或C++完成,然后从Python程序中调用。还提供数据库接口和GUI编程。

Python是一种解释性语言,其内核是Python解析器。任何安装了解析器的系统都可以运行Python 文件。

基础语法

标识符
Python默认utf-8编码,所有字符串都是 unicode 字符串。标识符的第一个字符必须是字母表中字母或下划线’_'。标识符的其他的部分有字母、数字和下划线组成。标识符对大小写敏感。

Python 保留字

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

在这里插入图片描述
Python注释

#这是单行注释

""" 这是多行注释 这是多行注释 """
''' 也可以用三个单引号来进行多行注释 '''

缩进
Python 使用缩进来表示代码块。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

基本数据类型

Python中有六种标准数据类型:

  • 数字
  • 细绳
  • 列表
  • 元组
  • 字典

Python3的六种标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

可变数据和不可变数据的“变化”是相对于参考地址而言的。并不是数据不能改变,而是数据改变时变量的引用地址是否会改变。

数字:运算符+,-,* ,/ ,%与其它语言一样括号 ()用于分组,/会保留小数部分,取而代之的是//** 运算符计算幂乘方 ,更高级计算需要引入数学计算库。

字符:Python 也提供单引号'...'或双引号"..." 标识字符。\ 可以用来转义,也可以使用 原始字符串,方法是在第一个引号前面加上一个r会原样输出。

# 要取得一段子串的话,可以用到​变量[头下标:尾下标]​,就可以截取相应的字符串
str="qwertyuiop"
print(str[0:5])

#qwert

类型判断
python可以用type函数来检查一个变量的类型:

type(name))

列表
列表List可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(也就是嵌套)。

列表标有 [ ]。它是 Python 最通用的复合数据类型。

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素 
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表

元组
元组Tuple是另一个数据类型,类似于 List(列表)。

元组用“()”标记。内部元素用逗号分隔。但元素不能被赋值两次,相当于只读列表。

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第三个的元素 
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组

字典
字典 (dictionary) 是除列表以外 Python 之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者的区别在于字典中的元素是通过key来访问的,而不是通过offset来访问的。

字典用“{ }”标识。字典由索引(键)及其对应的值组成。

dict = {
    }
dict['one'] = "This is one"
dict[2] = "This is two"

tinydict = {
    'name': 'john','code':6734, 'dept': 'sales'}
 
 
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值

数据类型转换

对数据内置的类型进行转换,只需要将数据类型作为函数名即可。
在这里插入图片描述

输入和输出流
input()函数作为输出流,print()函数作为输入流

name=input()
print(name)

多变的
变量是存储在内存中的值。就是指针无关数据类型,解释器会分配指定大小的内存。

# 等号(=)用来给变量赋值
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串

# 多个对象指定多个变量
a, b, c = 1, 2, "john" 

文本换行
使用+ \起到多行连接的作用:

data="this " + \
    "is " + \
    "Tuesday"
print(data)
#this is Tuesday

# 空格也会被视为字符

内置库和函数

数学计算库
Python ​math ​模块提供了许多对浮点数的数学运算函数。
Python ​cmath ​模块包含了一些用于复数运算的函数。

import math

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

字符串操作计算回切片获取
在这里插入图片描述

内置函数
在这里插入图片描述
关键词
在这里插入图片描述

自定义函数

Python函数的定义。定义函数需要用def 关键字实现,具体的语法格式如下:

def 函数名(参数列表):
    //实现特定功能的多行代码
    [return [返回值]]
def func(a,b):
    return a+b

func(1,2)
# 3

Python 支持在函数内部定义函数,也称为局部函数。

#全局函数
def outdef ():
    #局部函数
    def indef():
        print("http://c.biancheng.net/python/")
    #调用局部函数
    indef()
#调用全局函数
outdef()

与局部变量一样,默认情况下局部函数只能在其所在函数的作用域内使用。

拉姆达表达式
对于定义一个简单的函数,Python 还提供了另外一种方法,lambda 表达式,又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替。

name = lambda [list] : 表达式

def name(list):
    return 表达式
name(list)

eval() 和 exec() 函数
eval() 和 exec() 函数的功能是相似的,都可以执行一个字符串形式的 Python 代码(代码以字符串的形式提供),相当于一个 Python 的解释器。二者不同之处在于,eval() 执行完要返回结果,而 exec() 执行完不返回结果。

面向对象

Python 是一种面向对象的编程语言。类和对象是Python的重要特性。与其他面向对象语言相比,Python可以轻松创建类和对象。同时Python还支持面向对象的三大特性:封装、继承和多态。

在面向对象术语中,常用的术语包括:

  • 类:可以理解为一个模板,通过它可以创建无数具体的实例。例如前面写的乌龟只代表乌龟的种类,通过它可以创建无数个实例来代表各种特征的乌龟(这个过程也称为类的实例化)。
  • 对象:类不能直接使用,只能使用通过类创建的实例(也称为对象)。这有点像汽车图纸和汽车的关系。图纸本身(类)不能被人使用,只能使用通过图纸创建的汽车(对象)。
  • 属性:类中的所有变量都称为属性。例如,在tortoise类中,bodyColor、footNum、weight和hasShell都是该类拥有的属性。
  • 方法:类中的所有函数通常称为方法。然而,与函数不同的是,类方法必须至少包含一个 self 参数(稍后会详细介绍)。例如,在tortoise类中,crawl()、eat()、sleep()和protect()都是该类拥有的方法。类方法不能单独使用,只能与类的对象一起使用。

在Python中,所有变量实际上都是对象,包括整数(int)、浮点类型(float)、字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。以字典(dict)为例。它包含了多种功能供我们使用。例如,使用keys()获取字典中的所有键,使用values()获取字典中的所有值,使用item()获取字典中的所有键。值对。

Python 类定义
Python 中定义一个类使用 class 关键字实现,其基本语法格式如下:

class 类名:
    多个(≥0)类属性...
    多个(≥0)类方法...

施工方法
在创建类时,我们可以手动添加一个__init__() 方法,该方法是一个特殊的类实例方法,称为构造方法(或构造函数)。

def __init__(self,...):
    代码块

注意这个方法的方法名开头和结尾都有两个下划线,中间不能有空格。 Python 中许多以双下划线开头并以双下划线结尾的方法都有特殊含义。

类的构造函数必须至少有一个 self 参数。 self代表的是真正调用该方法的对象。无论是类中的构造函数,还是普通的类方法,真正调用它们的人都会由第一个参数 self 来表示。相当于Java的this。

类的实例化
创建类对象的过程,又称为类的实例化。类名(参数)

定义的类只有实例化后才能使用。实例化的类对象可以执行以下操作:

  • 访问或修改类对象拥有的实例变量,甚至添加新的实例变量或删除现有的实例变量;
  • 调用类对象的方法包括调用已有的方法和动态为类对象添加方法。

在这里插入图片描述

类变量
在类体中,根据变量定义的位置不同,以及定义的方式不同,类属性又可细分为以下 3 种类型:

  • 在类体中和所有函数之外:在此范围内定义的变量称为类属性或类变量;
  • 在类体中,所有函数内部:以“self.变量名”形式定义的变量称为实例属性或实例变量;
  • 在类体中,所有函数内部:以“变量名=变量值”的方式定义的变量称为局部变量。

类变量的特点是,所有类的实例化对象都同时共享类变量
实例变量只作用于调用方法的对象。另外,实例变量只能通过对象名访问,无法通过类名访问。
局部变量只能用于所在函数中,函数执行完成后,局部变量也会被销毁。

类方法
类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。

用@classmethod修饰的方法是类方法;用@staticmethod修饰的方法是静态方法;没有任何修改的方法是实例方法。

实例方法最大的特点是必须包含至少一个self参数,用于绑定调用该方法的实例对象(Python会自动完成绑定)。实例方法通常使用类对象直接调用。

Python 类方法与实例方法类似。它们必须至少包含一个参数,但类方法通常命名为 cls。 Python 会自动将类本身绑定到 cls 参数(注意它不是类对象)。也就是说,当我们调用类方法时,不需要显式地为cls参数传递参数。和self一样,cls参数的命名没有指定(可以任意命名)。

类方法建议直接使用类名来调用,当然也可以使用实例对象来调用(不推荐)。

class CLanguage:
    #类构造方法,也属于实例方法
    def __init__(self):
        self.name = "C语言中文网"
        self.add = "http://c.biancheng.net"
    #下面定义了一个类方法
    @classmethod
    def info(cls):
        print("正在调用类方法",cls)

类的静态方法中不能调用任何类属性和类方法。

class CLanguage:
    @staticmethod
    def info(name,add):
        print(name,add)

二传手和二传手
Python 中,通过使用描述符,可以让程序员在引用一个对象属性时自定义要完成的工作。
在这里插入图片描述

class revealAccess:
    def __init__(self, initval = None, name = 'var'):
        self.val = initval
        self.name = name
    def __get__(self, obj, objtype):
        print("Retrieving",self.name)
        return self.val
    def __set__(self, obj, val):
        print("updating",self.name)
        self.val = val

属性封装
使用用“类对象.属性”的方式访问类中定义的属性,其实这种做法是欠妥的,因为它破坏了类的封装原则。正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接实现对类属性的访问和操作。

在不破坏类封装原则的情况下,为了有效操作类中的属性,类中应该包含多个用于读取(或写入)类属性的getter(或setter)方法,这样就可以使用“class object.method( )Parameter)”方法来操作属性。此时属性被定义为实例属性。

class CLanguage:
    #构造函数
    def __init__(self,name):
        self.name = name 
    #设置 name 属性值的函数 
    def setname(self,name):
        self.name = name
    #访问nema属性值的函数
    def getname(self):
        return self.name
    #删除name属性值的函数
    def delname(self):
        self.name="xxx"

这种操作类属性的方式比较麻烦,更习惯使用“类对象.属性”方法。 Python提供了property()函数,可以让开发者仍然使用“类object.property”方法来操作类中的属性,而不破坏类封装的原则。

class CLanguage:
    #构造函数
    def __init__(self,n):
        self.__name = n
    #设置 name 属性值的函数
    def setname(self,n):
        self.__name = n
    #访问nema属性值的函数
    def getname(self):
        return self.__name
    #删除name属性值的函数
    def delname(self):
        self.__name="xxx"
    #为name 属性配置 property() 函数
    name = property(getname, setname, delname, '指明出处')

封装

封装机制保证了类内部数据结构的完整性,因为使用类的用户无法直接看到类中的数据结构,只能使用类允许暴露的数据,有效避免了外部影响内部数据并提高效率。程序的可维护性。

在这里插入图片描述
还可以定义以单下划线“_”开头的类属性或者类方法,这种类属性和类方法通常被视为私有属性和私有方法。

继承

继承机制常用于创建与现有类具有相似功能的新类,或者新类只需向现有类添加一些成员(属性和方法),但不想直接将现有类代码复制到现有类中。新班级。种类。换句话说,通过使用继承作为一种机制,类可以很容易地被重用。

当子类继承父类时,定义子类时只需要将父类(可以是多个)放在子类后面的括号中即可。。语法格式如下:

class 类名(父类1, 父类2, ...)#类定义部分

注意,如果类没有明确指定继承自哪个类,则默认会继承对象类(对象类是Python中所有类的父类,即要么是直接父类,要么是间接父类)父类)。另外,Python的继承是多重继承机制(与C++相同),即一个子类可以同时拥有多个直接父类。

多重继承面临的一个常见问题是多个父类包含同名的类方法。对于这种情况,Python的解决方案是:当子类继承多个父类时,由这些父类的顺序决定,即前一个父类中的类方法会覆盖后一个父类中的同名类方法父类。 。

方法重载
子类继承了父类,那么子类就拥有了父类所有的类属性和类方法。通常情况下,子类会在此基础上,扩展一些新的类属性和类方法。

在子类中定义一个同名、同类型、同参数的方法,重写方法体即可。

使用super() 函数访问父类成员或方法。但如果涉及多继承,该函数只能调用第一个直接父类的构造方法。

super().__init__(self,...)

多态

Python是一种弱类型语言,其最明显的特点就是在使用变量时,不需要为其指定特定的数据类型。

类的特殊成员

__new__() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。

通常情况下,直接输出某个实例化对象,得到的信息只会是“类名+object at+内存地址”,对我们了解该实例化对象帮助不大。通过重写类的__repr__() 方法,当我们输出某个实例化对象时,其调用的就是该对象的 __repr__()方法,输出的是该方法的返回值。

__del__() 方法,功能正好和 __init__() 相反,其用来销毁实例化对象。创建的类实例化对象后续不再使用,在适当位置手动将其销毁,释放其占用的内存空间(整个过程称为垃圾回收(简称GC))。

__dir()__函数,通过此函数可以获取某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。

__dict__ 属性。需要注意的一点是,该属性可以用类名或者类的实例对象来调用,用类名直接调用 __dict__,会输出该由类中所有类属性组成的字典;而使用类的实例对象调用 __dict__,会输出由类中所有实例属性组成的字典。

hasattr()函数用来判断某个类实例对象是否包含指定名称的属性或方法。

hasattr(obj, name)

getattr()函数获取某个类实例对象中指定属性的值。

getattr(obj, name[, default])

setattr() 函数的功能相对比较复杂,它最基础的功能是修改类实例对象中的属性值。其次,它还可以实现为实例对象动态添加属性或者方法。

setattr(obj, name, value)


迭代器
列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭代器。
实现如下 2 个方法:

  • __next__(self):返回容器的下一个元素。
  • __iter__(self):该方法返回一个迭代器(iterator)。

装饰者
@staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。

使用函数装饰器 A() 来装饰另一个函数 B()。底层执行以下两个步骤:将B作为参数传递给A()函数;将A()函数的返回值反馈给B。

函数装饰器利用装饰器函数,在不修改原有函数的情况下合理扩展函数的功能。

异常处理

在Python中,使用try except语句块来捕获和处理异常。其基本语法结构如下:

try:
可能产生异常的代码块
except [ (Error1, Error2, … ) [as e] ]:
处理异常的代码块1
except [ (Error3, Error4, … ) [as e] ]:
处理异常的代码块2
except [Exception]:
处理其它异常

在这里插入图片描述

Python异常处理机制在原有的try except结构的基础上,还提供了else块,即在原有的try except语句的基础上添加了else块,即try except else结构。用 else 包裹的代码只有在 try 块没有捕获任何异常时才会执行;反之,如果try块捕获了异常,那么即使调用相应的 except 来处理异常,else块中的代码也不会被执行。 。

try:
    result = 20 / int(input('请输入除数:'))
    print(result)
except ValueError:
    print('必须输入整数')
except ArithmeticError:
    print('算术错误,除数不能为 0')
else:
    print('没有出现异常')
print("继续执行")

Python异常处理机制还提供了finally语句,通常用于清理try块中的程序。在整个异常处理机制中,finally语句的作用是:无论try块中是否发生异常,最终都会进入finally语句,执行其中的代码块。

try:
    a = int(input("请输入 a 的值:"))
    print(20/a)
except:
    print("发生异常!")
else:
    print("执行 else 块中的代码")   
finally :
    print("执行 finally 块中的代码")

请注意,与 else 语句不同,finally 只需要与 try 一起使用。至于结构体中是否含有 except 和 else,对于finally 来说是不需要的(else 必须和 try except 一起使用)。

raise在在程序的指定位置手动抛出一个异常。

raise [exceptionName [(reason)]]

其中,[]括起来的可选参数用于指定抛出的异常名称以及异常信息的相关描述。如果省略所有可选参数,raise 将按原样抛出当前错误;如果only(reason)省略,则抛出异常时不会包含异常描述信息。

在这里插入图片描述

sys模块中的exc_info()方法获取更多的异常信息。

模块

Python提供了强大的模块支持,这主要体现在Python标准库不仅包含大量的模块(称为标准模块),还包含大量的第三方模块。开发者也可以自行开发自定义模块。通过这些强大的模块可以极大的提高开发者的开发效率。

使用import导入模块的语法
import 模块名1 [as 别名1], 模块名2 [as 别名2],…:使用这种语法格式的 import 语句,会导入指定模块中的所有成员(包括变量、函数、类等)。不仅如此,当需要使用模块中的成员时,需用该模块名(或别名)作为前缀,否则 Python 解释器会报错。
from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…: 使用这种语法格式的 import 语句,只会导入模块中指定的成员,而不是全部成员。同时,当程序中使用该成员时,无需附加任何前缀,直接使用成员名(或别名)即可。

[] 括起来的部分可以使用也可以省略。

定制包和模块
包其实就是文件夹,包含py文件的文件夹。手动创建一个包,只需进行以下 2 步操作:新建一个文件夹,文件夹的名称就是新建包的包名;创建py文件。

导入也很简单,主要有三种方式:

  • import 包名[.模块名 [as 别名]]
  • from 包名 import 模块名 [as 别名]
  • from 包名.模块名 import 成员名 [as 别名]

[] 括起来的部分是可选的,可以使用或忽略。

模块属性和方法
查看模块成员:dir()函数,通过 dir()函数获取到的模块成员,不仅包含供外部文件使用的成员,还包含很多“特殊”(名称以 2 个下划线开头和结束)的成员,列出这些成员,对我们并没有实际意义。

import string
dir(string)

查看模块成员:__all__变量,除了使用 dir() 函数之外,还可以使用 __all__变量,借助该变量也可以查看模块(包)内包含的所有成员。__all__ 变量在查看指定模块成员时,它不会显示模块中的特殊成员。

__doc__ 属性,查看模块(包)的具体功能。
__file__ 属性查找该模块(或包)文件所在的具体存储位置,直接查看其源代码。

IO处理

Python提供了内置文件对象和内置模块来操作文件和目录。通过这些技术,可以方便地将数据保存到文件(如文本文件等)中。

在 Windows 上,使用反斜杠“”作为文件夹之间的分隔符来编写路径,但在 OS X 和 Linux 上,使用正斜杠“/”作为路径分隔符。所需的两个字符中的第一个是转义字符。

系统级对文件的操作功能比较单一,实现起来也比较容易。可以借助Python中的特殊模块(os、sys等)并调用模块中指定的函数来实现。

import os
os.remove("a.txt")

文件的应用级操作可以分为以下三个步骤,每个步骤都需要借助相应的函数来实现:

  • 打开文件:使用 open() 函数,该函数会返回一个文件对象;
  • 对已打开文件做读/写操作:读取文件内容可使用read()、readline() 以及 readlines()函数;向文件中写入内容,可以使用 write() 函数。
  • 关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用close()函数。

如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open()函数实现:

file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])

在这里插入图片描述

在这里插入图片描述
Python 提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:

  • read()函数:按字节或逐字节读取文件内容;
  • readline()函数:逐行读取文件内容;
  • readlines() 函数:一次读取文件中的多行内容。

Python 中的文件对象提供了 write() 函数,可以向文件中写入指定内容。如:file.write(string)
close() 函数是专门用来关闭已打开文件的,如:file.close()

为了移动文件指针,文件对象提供了tell()函数和seek()函数。 tell()函数用于确定文件指针的当前位置,而seek()函数用于将文件指针移动到文件中的指定位置。

tell() 函数的用法很简单,如:file.tell()
seek() 函数用于将文件指针移动至指定位置,如:file.seek(offset[, whence])

与 as 一起使用来操作已打开的文件对象(本身是上下文管理器)。无论期间是否抛出异常,都保证执行with as语句后打开的文件会自动关闭:

with 表达式 [as target]:
    代码块
. . .

相关推荐

额外说明

Rust反杀shellcode加载和混淆

前言 这是半年前我学习Rust和免杀时的一些记录,最近打开知识库看到了这篇半年前的笔记,并且发现我常逛的安全社区都比较少有人分享Rust以及Rust免杀的帖子,于是想着将这篇笔记分享出来供大家参考和指正。由于我写这篇文章时也刚刚开始接触Rust,所以文中

额外说明

Jetbrain常用插件

1 . chinese dark Purple Theme Dracula Theme CamelCase Grep Console Jrebel and XRebel Maven Helper MybatisX Nyan Progress Bar Py

额外说明

2021最后一天,写给那波澜壮阔的2021,写给那即将到来的2022

今天是12.31日,是2021年最后一天,相信很多人现在都沉浸在今晚跨年的喜悦中,而我,兜兜转转的原地打转后,生活才在今年步入了正轨,说真的,在这一年多,有时候感觉挺累。短时间内需要完成的任务太多,很多时候熬夜加班,因此,在生活、工作逐渐稳定后,有必要对

额外说明

【Linux内网穿透】使用SFTP工具快速实现内网穿透

文章目录 内网穿透简介 1. 查看地址 2.局域网测试连接 3.创建tcp隧道 3.1. 安装cpolar 4.远程访问 5.固定TCP地址 内网穿透简介 是一种通过公网将内网服务暴露出来的技术,可以使得内网服务可以被外网访问。以下是内网穿透的一些应用:

额外说明

Unity与 SO 交互 ☀️| 详细讲解 怎样通过 Android Studio 生成一个.so文件 并简单调用!

本文章是Unity与 SO 交互的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个————-订阅专栏- 就可以免费观看多篇相关内容的文章啦! -前言 -SO文件生成 -通过Android Studio生成.so文件 -️‍-第一步:下载配

额外说明

hadoop 自定义分区

分区概念 分区这个词对很多同学来说并不陌生,比如Java很多中间件中,像kafka的分区,mysql的分区表等,分区存在的意义在于将数据按照业务规则进行合理的划分,方便后续对各个分区数据高效处理 Hadoop分区 hadoop中的分区,是把不同数据输出到

额外说明

3.3 Ext JS之按钮(button)

按钮的类型 按钮类的命名空间是Ext.button,主要包含以下四种类型的按钮: 按钮类型 xtype class 1 Button button Ext.button.Button 2 Split splitbutton Ext.button.Spli

额外说明

数据的导入

@RequestMapping("/import_data") public HttpResult importData(@RequestParam("file") MultipartFile file,HttpServletRequest reque

额外说明

使用 Java 8 中的 Stream ,可以让你写代码事半功倍

Stream Java 8 中一个主要的新功能是引入了流(Stream)功能。在java.util.stream中包含用于处理元素序列的类。其中,最重要的类是Stream<T>。下面我们就来看看如何使用现有的数据源创建流。 创建Stream 可以使用 s

额外说明

spring-boot-maven-plugin 引入出现爆红,已解决

一、问题描述       换了一台电脑,重新进行idea安装配置。然后打开原来的项目结果引入spring-boot-maven-plugin出现爆红,而且spring-boot-starter-parent也不能引入。 二、解决办法       1.检查

ads via 小工具