热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python基本函数总结,python的基本函数

【Python】基础总结input(提示性信息)如:input(请输入数字)因为Python没有特别人为规定数据类型,数据类型是由计算机进行判定,所以我们input()输入的数据均

【Python】基础总结

input("提示性信息")

如:

input("请输入数字")

因为 Python 没有特别人为规定数据类型,数据类型是由计算机进行判定,所以我们 input() 输入的数据均默认作为字符串处理,而如果要输入一些数字,着需要 eval() 评估函数对字符串进行评估,化为语句(数字)。

print(...)

默认空一行,如果想不空行,则

print(...., end = "")

特性:

进制:

特性:

浮点数间运算存在不确定尾数,不是 bug

如:0.1+0.3 → 0.4

0.1+0.2 → 0.30000000000000004

这是由于在计算机中一切数据都是化为二进制进行存储的,而有的浮点数并不能完全化为相等的二进制数,只能无限趋近于二进制数。

如:0.1 →

解决方法:

四舍五入:

例如:z = 1.23e-4 + 5.6e+89j

z.real 获得实部,z.imag 获得虚部

三种类型存在一种逐渐“扩展”或“变宽”的关系:

整数 → 浮点数 → 复数

特点:

字符串有 2 类共 4 种表示方法:

扩展:

使用[]获取字符串中一个或多个字符

使用[M:N:K]根据步长对字符串切片

{参数序号:格式控制标记}

右对齐

^ 居中对齐 | 槽设定的输出宽度 | 数字的千位分隔符 | 浮点数小数精度 或 字符串最大输出长度 | 整数类型

b , c , d , o , x , X

浮点数类型

e , E , f , % |

填充、对齐、宽度这三个一组,例如:

"{0:=^20}".format("PYTHON")

→ '=======PYTHON======='

"{0:*20}".format("BIT")

→ '*****************BIT'

"{:10}".format("BIT")

'BIT '

剩下的三个一组,例如:

"{0:,.2f}".format(12345.6789)

→ '12,345.68'

"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}x".format(425)

→ '110101001,Σ,425,651,1a9,1A9'

"{0:e},{0:E},{0:f},{0:%}".format(3.14)

'3.140000e+00,3.140000E+00,3.140000,314.000000%'

↓CloseCode↓

使用 raise 语句抛出一个指定的异常。

raise [Exception [, args [, traceback]]]

紧凑形式:适用于简单表达式的二分支结构

表达式1 if 条件 else 表达式2

例如:

↓CloseCode↓

↓CloseCode↓

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

由条件控制的循环运行方式

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

↓CloseCode↓

可选参数例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

可变参数例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

在函数定义中,经常会碰到 *args(arguments) 和作为参数 **kwargs(keyword arguments)。

(事实上在函数中,和才是必要的,args 和 kwargs 可以用其他名称代替)

*args 是指不定数量的非键值对参数。

**kwargs 是指不定数量的键值对参数。

*args 作为作为元组匹配没有指定参数名的参数。而 **kwargs 作为字典,匹配指定了参数名的参数。

*args 必须位于 **kwargs 之前。

args( 通常紧跟一个标识符,你会看到a或者args都是标识符)是python用于接收或者传递任意基于位置的参数的语法。当你接收到一个用这种语法描叙参数时(比如你在函数def语句中对函数签名使用了星号语法),python会将此标识符绑定到一个元祖,该元祖包含了所有基于位置的隐士的接收到的参数。当你用这种语法传递参数时,标识符可以被绑定到任何可迭代对象(事实上,它也可以是人和表达式,并不必须是一个标识符),只要这个表达式的结果是一个可迭代的对象就行。

**kwds(标识符可以是任意的,通常k或者kwds表示)是python用于接收或者传递任意基于位置的参数的语法。(python有时候会将命名参数称为关键字参数,他们其实并不是关键字--只是用他们来给关键字命名,比如pass,for或者yield,还有很多,不幸的是,这种让人疑惑的术语目前仍是这门语言极其文化根深蒂固的一个组成部分。)当你接收到用这种语法描叙的一个参数时(比如你在函数的def语句中对函数签名使用了双星号语法)python会将标识符绑定到一个字典,该字典包含了所有接收到的隐士的命名参数。当你用这种语法传递参数时,标识符只能被绑定到字典(我ID号I它也可以是表达式,不一定是一个标识符,只要这个表达式的结果是一个字典即可)。

当你在定义或调用一个函数的时候,必须确保a和k在其他所有参数之后。如果这两者同时出现,要将k放在a之后。

lambda函数返回函数名作为结果

↓CloseCode↓

例如:

↓CloseCode↓

运行结果:

↓CloseCode↓

谨慎使用lambda函数

pandas常用函数汇总

pandas官方文档:

对常用函数做了汇总,每个函数的参数可能不是全的,但是常用的,不常用的没总结,如有问题,请不吝赐教,谢谢!

1、创建Series

      通用函数:pd.Series(values,index)

     1)pd.Series([1,2,3],index=[‘a’,‘b’,‘c‘])

     2)pd.Series(np.array([1,2,3]),index=[‘a’,‘b’,‘c‘])

     3)pd.Series({ 'a':1,  'b':2,  'c':3})

        Series转字典:Series.to_dict()

     说明:Series的values参数是python中常见的一维数据类型。

2、属性

     1)Series.values ---array([1,2,3])

           Series的values是array类型

     2)Series.index---index([‘a’,‘b’,‘c‘])

           未指定index时,自动生成 0-(N-1)的整数索引,

           指定 index时,使用指定索引。

 3、Series的索引与切片

       Series[0] / Series['a']  : Sereis可以位置索引或标签索引,也可以进行切片操作

1、创建DataFrame

    1) 创建DataFrame的通用函数:

     df = pd.DataFrame(values,index,columns)

     pd.dataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['bj','sh','sz'])

     pd.dataFrame(np.arange(1,10).reshape(3,3),index=['a','b','c'],columns=['bj','sh','sz'])

     pd.dataFrame('bj':[1,4,7],'sh':[2,5,8],'sz':[3,6,9],index=['a','b','c'])

说明:创建方法与Sries类似,Series的values参数是python中常见的一维数据类型,DataFrame的values参数是python中常见的二维数据类型。

    2) 通过网页中复制数据快捷创建

        import webbrowser

        link = ''

        webbrowser.open(link)

        打开界面进行复制,将数据复制到粘贴板中

        df = pd.read_clipboard()   #从粘贴板中读取数据

    3)通过Series创建DataFrame

        df = pd.DataFrame([s1,s2,s3],columns=['bj','sh','sz'])

        注意:单独的s1,s2,s3是纵向排列的的Series,但是在DataFrame中是横向排列的。

        自己总结:Series除了打印出来是Series格式外,其他时候可以直接当作list来操作。

2、属性

     1)df.columns

        通过columns生成新的DataFrame

        df_new = pd.DataFrame(df,columns=['x1','x2'])

        或者df_new = df[['x1','x2']]

    2)df.shape  显示行列数

    3)df.head()   默认显示前5行

    4)df.tail()     默认显示后5行

3、获取DataFrame的列

     1)获取DataFrame某一列

          df.x1或df['x1']:返回值是Series,可以理解为一个DataFrame是由多个Series组成的。

      2) 获取DataFrame某几列

          df_new = df[['x1','x2','x3']]

4、为某列赋值

      1) df['x1'] = range(10)

      2) df['x1'] = numpy.arange(10)

      3) df['x1'] = pd.Series(np.arange(10))

      说明:类似于创建Series

 5、为某列对应的特定行重新赋值

        df['x1'] = pd.Series([2,3],index=[0,1])

        将列为x1,行索引为0和1的值改为2,3

 6、获取DadaFrame的行

      for row in DataFrame.iterrows():

              print(row[0],row[1])

      #每个row是一个元祖,包含2个元素,row[0]是整型索引,row[1]是Series,所以从行的角度也可以看出,一个DataFrame是由多个Series组成的。

 7、DataFrame的转置

      df_new = df.T

1、粘贴板的io

      df = pd.read_clipboard()

      df.to_clipboard()

 2、csv的io

       df.to_csv('xxx.csv')

       df = pd.read_csv('xxx.csv')

  3、json的io

       df.to_json()

       pd.read_json(df.to_json())

   4、excel的io

        df.to_excel('xx.xlsx')

        df = pd.read_excel('xx.xlsx')

   5、df = pd.read_sql('')

        df.to_sql('')

 1、iloc

      sub_df = df.iloc[10:20,:]  选取DataFrame的10-20行,所有列数据

      sub_df = df.iloc[10:20,0:2]

      说明:iloc函数是位置索引,与索引的名字无关。

   2、loc

      sub_df = df.loc[10:20,:'movie_name']

      说明:loc是标签索引,10,20,'movie_name'  都是索引名字,与位置无关。

1、Series.reindex(index=['x1','x2','x3'],fill_value=10)

      将df重新索引,并且将NaN空值用10进行填充

2、Series.reindex(index=range(15),method='ffill')

     前项填充,后面的值用前面的值进行填充

     通过reindex想到,如果想新增一个空列或者空行,可以用reindex方法,同样地,想减少某些行或者某些列,也可以用reindex方法。

      继reindex之后删除行列的函数操作

      Series.drop('A')   #删除'A'所对应的值

      DataFrame.drop(label,axis) 

      label可以是行名也可以是列名,label是行的话axis是0,label是列的话axis是1。

     ** 删除行还可以用 del df['A']

nan是numpy的一种数据类型,np.nan,float类型

任何数据与nan的运算结果都是nan

1、nan in Series

      Series.isnull()  --返回value为True或者False的Series

      Series.notnull()  --返回value为True或者False的Series

      Series.dropna()  --返回删除nan值后的Series

      Series.fillna(method='ffill')  --前项插值,按照前面的值填充后面的空值

2、nan in DataFrame

      df.isnull()  --返回value为True或者False的DataFrame

      df.notnull()  --返回value为True或者False的DataFrame

      df.dropna(axis=0/1,how='any/all',thresh=None)

      说明:axis表示删除行为nan或者列为nan;

                any表示只要有一个为空,all表示行中的每个元素或者列中的每个元素为空;

                thresh是阈值的意思,表示某行或者某列nan的个数达到阈值的个数时才删除该行或该列。

      df.fillna(value=1)  ---所有的空值都填充为1

      df.fillna(value={0:0,1:1,2:2}) ---将0列的空值填为0,1列的空值填为1,2列的空值填为2,默认为填充列

      注意:fillna和dropna的特点,生成新的DataFrame,原来的DataFrame不变。

1、多重索引介绍

     Series = pd.Series(np.random.randn(6),index=[['1','1','1','2','2','2'],['a','b','c','a','b','c']])

    '1','2'为一级索引,'a','b','c'为二级索引

    df 可以看做是索引的'1','2'的Series

    Series['1']  --Series

    Series['1']['a']  --value

    Series[:,'a'] --选择'1'和'2'中的'a'对应的值

2、多重索引格式转为二维DataFrame

    df = Series.unstack() --转为二维DataFrame

3、多重索引在DataFrame中的操作

1、 map函数与apply函数、applymap函数的区别:

      1)map函数对Series中的每个元素作用;

      2)applymap函数对DataFrame中的每个元素作用;

      3)apply函数对对DataFrame和Series的一列做整体运算。

2、Series.replace(to_replace=[2,3,4],values=[20,30,40])  替换Series中多个值

    Series.replace({1:10,2:20})  将索引为1的值替换为10,将索引为2的值替换为20

    df.sum()  --默认按照列进行求和,nan的值被忽略

    df.min()  --默认按照列求最小值

    df.max()  --默认按照列求最大值

    df.mean()  --默认按照列求平均值

    df.describe()  --默认按照列进行描述

    df.sum(axis=1)  --按行求和,nan的值被忽略

    #axis=0表示对横轴进行操作,但是运算中表现为纵轴操作

    #axis=1表示对纵轴进行操作,但是运算中表现为横轴操作

 bins = [0,59,70,80,100],bins是分割范围

 score_cat = pd.cut(Series,bins)  ---得到catgory类型的数据

 DataFrame的分箱技术很棒啊!

 pd['catgory'] = pd.cut(df['a'],bins=[0,59,70,80,100],labels=['low','ok','good','great'])

 --新增一列,将a列的值按照labels进行分类标记,good!!!

 #生成长度为3的随机字符串  pd.util.testing.rands(3)

1、按照一列分组

      g = df.groupby('city')

      g是分组类型数据,打印不出来,所以看不到,但是有属性和方法可以间接的了解

     1) g.groups  --得到分的几个组,和每个组包含的索引

     2)g.get_group('BJ')  --得到'BJ'所对应的组

     3)groupby = split +apply +combine

           g.mean()  --求每组的平均值

           g.max()   --求每组的最大值

           g.min()   --求每组的最小值

           g.count()

           g.describe()

      4)g是一个可迭代对象,可以用list函数将其转化为list

          list(g) -- [('组名1',DataFrame1),('组名2',DataFrame2),(),()]

          dict(list(g))  --将其转化为字典

      同时可以通过for循环进行遍历操作:for item,desc in g:print(item,desc)

      #怪不得分组后不是DataFrame,因为元组的第一个元素是'分组名'。

2、按照多列分组

      g_new = df.groupby(['city','wind'])

      得到生成器((('分组1','分组2'),DataFrame),(),()...)

      g_new.get_group(('分组1','分组2'))

      for (name_1,name_2),group in g_new:

              print((name_1,name_2),group)

 g.mean()  --求每组的平均值

 与g.agg('mean')方法一样

pd.pivot_table(df,index=['',''],aggfuc='sum',values=['',''])

index是分组的组名,values是透视表呈现结果的列,columns是values下的分解

#感觉透视表呈现的结果就是groupby+agg后的结果

#分析者需要对数据结构有一定的了解

df.sort_values(by='',ascending=True/False)[:10]  df可以索引

df.value_counts()  --按值计数

df.['a'] = df['b'].apply(lambda x:x0)  --DataFrame中的True/False

通过g.size()可以看到被groupby之后的数据,得到的是一个Series

1、Series的排序:

    1)对值进行排序

    Series.sort_values()  ---直接对Series的值进行排序

    2)通过索引进行排序

    Series.sort_index() 

    #默认都是升序排列

2、DataFrame的排序

     df.sort_values(by='')  --按照某列的顺序进行排序

    df['a'].sort_values()  --返回对a列数据的排序结果,只返回a列

1、df.index = Series(['a','b','c'])  直接对index赋予新值

2、df.index = df.index.map(str.upper)

     map函数中只传入新的函数名即可

3、df.rename(index=str.upper,columns=str.lower)

      或者传递字典,进行一一转换

    pd.merge(df1,df2,on=None,how='left/right/inner/outer')

    pd.merge(df1,df2)  --没有on参数默认先找相同的columns,然后在columns下找相同的values

    pd.merge(df1,df2,on='columns')  --on参数是指按照指定列进行merge

    left:表示以左边的数据表为基准,进行填充右面的数据

    right:表示以右边的数据表为基准,填充左边的数据

    outer:以on的指定列的所有值为基准,填充两边的数据

    inner:默认inner,相同on指定的columns下的相同values对应的左右两边的数据

1、concat拼接

    pd.concat([Series1,Series2])

    pd.concat([df1,df2])  -- 上下叠加,将没有的列进行填充

2、combine组合

    Series1.combine_first(Series2)  --用Series2的值去填充Series1中为空的值

    df1.combine_first(df2)  ---用df2将df1中的空值填充

    df['A'] = df['A'].apply(str.upper)  ---apply函数中也只输入函数名

    len(df)  --求df的长度

    len(df['a'].unique())  --查看a列中不重复数据的多少

    Series.duplicated()  --返回一列True/False的Series

    Series.drop_duplicates()  --删除重复值

    df.drop_duplicates('a',keep='first/last')

    df.drop_duplicates()  --删除完全重复的行

    参数:'a'表示以a列为基准,删除重复值

              first表示保留第一个,last表示保留最后一个

    data_list = pd.date_range(start,end,period='D',freq)

    period='D',以天为单位

    freq = 'W' 以周为单位

    freq = 'W-Mon'以每周一位单位

    freq = '5H'  以5h为单位

    以data_range作为索引提取数据比较简单

    df[datetime(2017,9,1)]

    df['2017-09-01']

    df['20170901']

    df['201709']

    对时间序列数据进行分组聚合操作:

    s1.resample('M').mean()  --以月为单位进行采样,然后求每组的平均值

    s1.resample('H').ffill()  --前项填充

    s1.resample('H').bfill()  --后项填充

补充:1)jupyter中可以执行linux命令,太棒了!

                !ls

                !more xxx.csv

                !pwd  等等

           2)jupyter 查看函数帮助的快捷键:摁住shift + tab  棒!!!

Python字典中几个常用函数总结

1、get() 返回指定键的值,如果值不在字典中返回default值。

语法:dict.get(key,default=None)

参数:

key 字典中要查找的键。

default 如果指定键的值不存在时,返回该默认值值。

例:

dict={'Name':'alex','Age':21}

print("Name is:%s"% dict.get('Name')+"\n"+ "Age is:%d"% dict.get('Age'))

显示结果为:

Name is:alex

Age is:21

2、update() 将一个字典中的值更新到另一个字典中。

语法:dict.update(dict2)

参数:

dict2 添加到指定字典dict里的字典。

例:

dict={'Name':'alex','Age':21}

dict2={'Sex':'female'}

dict.update(dict2)

print("Value is %s" % dict)

显示结果为:

Value is {'Name': 'alex', 'Age': 21, 'Sex': 'female'}

python函数与方法的区别总结

1、函数的分类:

内置函数:python内嵌的一些函数。

匿名函数:一行代码实现一个函数功能。

递归函数

自定义函数:根据自己的需求,来进行定义函数。

2、方法的分类:

普通方法:直接用self调用的方法。

私有方法:__函数名,只能在类中被调用的方法。

属性方法:@property,将方法伪装成为属性,让代码看起来更合理。

特殊方法(双下划线方法):以__init__为例,是用来封装实例化对象的属性,只要是实例化对象就一定会执行__init方法,如果对象子类中没有则会寻找父类(超类),如果父类(超类)也没有,则直接继承object(python 3.x)类,执行类中的__init__方法。类方法:通过类名的调用去操作公共模板中的属性和方法。

静态方法:不用传入类空间、对象的方法, 作用是保证代码的一致性,规范性,可以完全独立类外的一个方法,但是为了代码的一致性统一的放到某个模块(py文件)中。

其次,从作用域的角度来分析:

(1)函数作用域:从函数调用开始至函数执行完成,返回给调用者后,在执行过程中开辟的空间会自动释放,也就是说函数执行完成后,函数体内部通过赋值等方式修改变量的值不会保留,会随着返回给调用者后,开辟的空间会自动释放。

(2)方法作用域:通过实例化的对象进行方法的调用,调用后开辟的空间不会释放,也就是说调用方法中对变量的修改值会一直保留。

最后,调用的方式不同。

(1)函数:通过“函数名()”的方式进行调用。

(2)方法:通过“对象.方法名”的方式进行调用。

太全了!Python3常用内置函数总结

数学相关

abs(a) : 求取绝对值。abs(-1)

max(list) : 求取list最大值。max([1,2,3])

min(list) : 求取list最小值。min([1,2,3])

sum(list) : 求取list元素的和。 sum([1,2,3]) 6

sorted(list) : 排序,返回排序后的list。

len(list) : list长度,len([1,2,3])

divmod(a,b): 获取商和余数。 divmod(5,2) (2,1)

pow(a,b) : 获取乘方数。pow(2,3) 8

round(a,b) : 获取指定位数的小数。a代表浮点数,b代表要保留的位数。round(3.1415926,2) 3.14

range(a[,b]) : 生成一个a到b的数组,左闭右开。range(1,10) [1,2,3,4,5,6,7,8,9]

类型转换

int(str) : 转换为int型。int('1') 1

float(int/str) : 将int型或字符型转换为浮点型。float('1') 1.0

str(int) : 转换为字符型。str(1) '1'

bool(int) : 转换为布尔类型。 str(0) False str(None) False

bytes(str,code) : 接收一个字符串,与所要编码的格式,返回一个字节流类型。bytes('abc', 'utf-8') b'abc' bytes(u'爬虫', 'utf-8') b'xe7x88xacxe8x99xab'

list(iterable) : 转换为list。 list((1,2,3)) [1,2,3]

iter(iterable): 返回一个可迭代的对象。 iter([1,2,3]) list_iterator object at 0x0000000003813B00

dict(iterable) : 转换为dict。 dict([('a', 1), ('b', 2), ('c', 3)]) {'a':1, 'b':2, 'c':3}

enumerate(iterable) : 返回一个枚举对象。

tuple(iterable) : 转换为tuple。 tuple([1,2,3]) (1,2,3)

set(iterable) : 转换为set。 set([1,4,2,4,3,5]) {1,2,3,4,5} set({1:'a',2:'b',3:'c'}) {1,2,3}

hex(int) : 转换为16进制。hex(1024) '0x400'

oct(int) : 转换为8进制。 oct(1024) '0o2000'

bin(int) : 转换为2进制。 bin(1024) '0b10000000000'

chr(int) : 转换数字为相应ASCI码字符。 chr(65) 'A'

ord(str) : 转换ASCI字符为相应的数字。 ord('A') 65

相关操作

eval****() : 执行一个表达式,或字符串作为运算。 eval('1+1') 2

exec() : 执行python语句。 exec('print("Python")') Python

filter(func, iterable) : 通过判断函数fun,筛选符合条件的元素。 filter(lambda x: x3, [1,2,3,4,5,6]) filter object at 0x0000000003813828

map(func, *iterable) : 将func用于每个iterable对象。 map(lambda a,b: a+b, [1,2,3,4], [5,6,7]) [6,8,10]

zip(*iterable) : 将iterable分组合并。返回一个zip对象。 list(zip([1,2,3],[4,5,6])) [(1, 4), (2, 5), (3, 6)]

type():返回一个对象的类型。

id(): 返回一个对象的唯一标识值。

hash(object):返回一个对象的hash值,具有相同值的object具有相同的hash值。 hash('python') 7070808359261009780

help():调用系统内置的帮助系统。

isinstance():判断一个对象是否为该类的一个实例。

issubclass():判断一个类是否为另一个类的子类。

globals() : 返回当前全局变量的字典。

next(iterator[, default]) : 接收一个迭代器,返回迭代器中的数值,如果设置了default,则当迭代器中的元素遍历后,输出default内容。

reversed(sequence) : 生成一个反转序列的迭代器。 reversed('abc') ['c','b','a']


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
author-avatar
浪子得意_357
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有