当前位置: 首页 > article >正文

人工智能python快速入门

五.python数值运算

(1)加减乘除

乘法(*):乘法运算

除法(/):会得到带小数的商。

取余(%):取余数

平方(**):平方的意思,例2**3=8

(2)类型转换

1)类型名(变量名),例如a=5;float(a)或float(5)

2)只有全是数字组成的字符串才能转成int类型,否则转换不成功。

(3)python中把数值可直接赋值给某个变量,变量名前可不指定类型,例a=1;又例如b=True;

然后用type(变量名)就可得出这个变量的类型。

(4)计算先后顺序先算()——>平方——>乘除——>加减

(5)基本数值操作

1)abs():取绝对值,例abs(-10)

2)round():四舍五入操作

3)min():最小值

4)max():最大值

六.python字符串操作

(1)方法

1)len():计算字符串的长度

2)字符串*数字表示复制多少次(数字)这样的字符串,例a=abc;print(a*3)就等以abcabcabc

3)split():对字符串按什么格式切分,得到一个list。例a='1;2;3';  a.split(';')

4)join():合并。能切就能合。例如a='1;2;3';  b=a.split(';'); c=''; c.join(b)

5)replace():替换

6)strip():去掉左右两边空格

7)lstrip():去掉左边空格

8)format():按格式直接传参数值进来。例'{}{}'.format('a','b');

指定参数顺序值传入进来,例如print('{1}{0}'.format('a','b'));的结果会’b a'

不但可用数字指定参数顺序,还可直接放形参,例如print('{a}{b}'.format(a=1,b=2));的结果会’1 2'

9)也可用%形式达到8)的效果,例如a='abc';b=100.12; '%s %f' %(a,b);

七.索引结构

索引下标都是从0开始计算的,但从后面开始数的话就没有负零开始的,是从-1开始数的。索引不能越界,否则会报错。

(1)索引从左往右数时,第一个是索引0 。例a='abc def'; a[2]会打出c

(2)切片。

用冒号(:)做切片,规则是左闭右开。

1)这里用冒号(:)表示从那里到那里,但它是左闭右开区间的(右边最后那个是不包括的)。例如a='abc de fgh'; print(a[0:3]);这样会打出'abc',这里它不包括c后面的空格的。又例如

b='abc de fgh'; print(b[1:-3]);这里-3是指从后面算起。

2)如果冒号(:)后面不指定说明后面的内容都取。例如a='abc de fgh'; print(a[4:]);

3)同理,如果冒号(:)前面不指定说明前面的内容都取。例如a='abc de fgh'; print(a[:6]);或print(a[:-2]);

4)那如果冒号(:)两边都不指定值,就等以取全部了

5)如果是两个冒号(::)后接上数字,就是说每隔几隔(数字是几就几,空格也是要算1隔的)取一个值。例如a='abc def this';print(a[::2]);就会打印出acdfti

八.List基础结构

用[ ]表示创建list结构,里面可放任何类型的元素,不一定只固定放一种类型。

(1)用中括号[ ]定义与初始化list。a=[1,2,3];type(a);表示a是定义出了一个list结构,并初始化了1,2,3这三个值放入里面。又例如a=[1,'abc',3];也可以按创建对象方式这种写法,例如a=list([1,2,3,4,5])

(2)操作

1)len():表示list的长度。例如a=[1,'abc',3];len(a);

2)加号(+):可把list中的元素拼接在一起构成新的list。例a=[1,'abc',3];b=[21,'c',35];print(a+b);

3)乘号(*):与字符串操作一样,起到复制里面的元素几次。例a=[1,'abc',3];b=a*2;print(b);

4)通过索引直接取list中的元素,不能越界。例a=[1,'abc',3];print(a[1]);

5)切片。用冒号(:)来切list中元素,这与上面说的七中的索引切片类似。例a=[1,'abc',3];print(a[1:]);

6)赋值。按索引值找到相应位置值,然后用等以赋给新值。例如a=[1,'abc',3];a[1]=123;print(a);全部替换也可以用冒号那种形式,但原来有多少个元素,整体全部替换时也要替换多少个元素(不能多也不能少)。例如a=[1,'abc',3];a[:]=[123,456,789];print(a);

7)del:按指定索引进行删除。例如a=[1,'abc',3];del(a[1]);print(a);也可以用冒号(:)表示从那里开始删除至那里。例如a=[1,'abc',3];del(a[:1]);print(a);

8)in或not in:用来做逻辑判断。即判断某个元素是否在list里面。例如a=[1,'abc',3];3  in  a;

九.List核心操作

(1)list中嵌套list:因为list里面的元素是可以任意类型的。例如a=[1,'abc',[123,456],3];print(a[2]); print(a[2][1]);  这样相当于这个a是二维的。

(2)count():计数操作。例如a=[1,'abc',1,3,'abc','abc'];print(a.count('abc'));

(3)index():由元素值定位得到索引值,但元素值须在list中存在,否则会报错。例如a=[1,'abc','13'];print(a.index('13'));

(4)append():每次向list最后面增加一个任意元素(当然也可加一个list)。例如a=[1,'abc','13'];print(a.append(['13',456,'qqq']));

(5)insert(索引值,插入的元素):在指定索引位置处增加一个任意元素。例如a=[1,'abc','13'];print(a.insert(1,['13',456,'qqq']));

(6)remove(元素值):删除某个元素值,如果有多个相同元素值,它每次会删除第一个元素。

(7)sort()或sorted():排序。例如a=[1,3,2,8,6];print(a.sort());b=[1,3,2,8,6];b1=sorted(b);print(b1);

(8)reverse():对list中元素进行反转操作。例如a=[1,'abc','13'];print(a.reverse());

(9)pop(索引值):弹出指定索引对应的值,弹出后list中就不会存在这值了

十.字典基础定义

字典是key-value结构的,一个字典中key是唯一的,定义后的元素是没有顺序的(每次打印出来的结果看上去位置会发生变化),这与java的map类似。

(1)用大括号{}定义与初始化字典。也可以按构造对象方式来构造出一个字典。例如a['age']=18;print(a);打印出来的结果是{'age':18};这里中括号里的age是key,18是赋给这个键的值。也可以直接按key-value结构定义到大括号里面,例如a={'age':18,'name':'zhou'}; print(a);

(2)操作

因为字典是key-value结构,那对字典操作就是对这二个值操作。

1)按key查找对应的value值。例如a['age']=18; a['name']='zhou';  print(a['age']);

2)按指定的key进行赋值更新操作。

例如a['age']=18; a['name']='zhou';  print(a['age']);a['age']=100; print(a['age']);

十一.字典的核心操作

(1)字典中的value值也是可以是任意类型的元素的,和list一样。例如a={};

a['age']=18; a['name']=['zhou',1,3];  print(a);同样例如一个字典中可嵌套字典等等。

(2)get(key)或get(key,默认值):按key键值查找到对应的值。如果键不存在时用get(key,默认值)就会得到默认值,如果用get(key)会报错。

(3)pop(key):弹出指定key对应的值,弹出后字典中就不会存在这值了。例如a={};a['age']=18; a['name']=['zhou',1,3];  a.pop('name');print(a);

(4)del:删除指定元素。例如a={};a['age']=18; a['name']=['zhou',1,3]; del a['age']

(5)update():用一个字典中的元素更新到旧字典,如果有相同key就更新,如果旧字典中没有key就相当于把这个新元素增加到旧字典中。例如a={};a['age']=18; b={'age':100,'name':['zhou',1,3]}; c=a.update(b);print(c);

(6)in或not in:in是表示某个key是否在字典当中。例如a={};a['age']=18; print('age' in a);

(7)keys:查出所有健值。

例如a={};a['age']=18; a['name']=['zhou',1,3];  b=a.keys();print(b);

(8)values():查出所有values值

例如a={};a['age']=18; a['name']=['zhou',1,3];  b=a.values();print(b);

(9)items():得出字典中所有内容(key与value都得到)。例如a={};a['age']=18; a['name']=['zhou',1,3];  b=a.items();print(b);

十二.Set结构(集合)

Set(集合)是只保留唯一的元素,有去重作用,多个相同元素只保留一个。

(1)构造set与初始化

1)直接把其它类型结构元素通过调用set()方法得到一个set。例如a=[1,'abc','13',1];print(a.set(a));

2)先用set()方法得到一个set对象,然后再赋值。例如a=set(); a=[1,'abc','13',1];print(a);或者直接这样:a=set([1,'abc','13',1]);print(a);它这里传入的是中括号内容[]。

3)set集合也可以直接用大括号{}表示,如果{}里面内容是key-values对,那么是字典;如果不是key-values对,那么是set集合。例如a={1,'abc','13',1};print(a);

(2)set集合的操作

1)union()或用|:求二个集合的并集,其中|直接放在两个集合之间就行。例如a={1,2,3,4};b={2,4,6,8};c=a.union(b);print(c);又例如a={1,2,3,4};b={2,4,6,8};c=a|b;print(c);

2)intersection()或用&:求二个集合的交集,其中&直接放在两个集合之间就行。例如a={1,2,3,4};b={2,4,6,8};c=a.intersection(b);print(c);又例如a={1,2,3,4};b={2,4,6,8};c=a&b;print(c);

3)difference()或—:求二个集合的差集,其中—直接放在两个集合之间就行。这里要注意:差集的集合是有前,后之分的(即A.difference(B)表示A中有但B中没有的元素,B.difference(A)表示B中有但A中没有的元素)。例如a={1,2,3,4};b={2,4,6,8};c=a.difference(b);print(c);d=b.difference(a);print(d);

又例如a={1,2,3,4};b={2,4,6,8};c=a—b;print(c);

4)issubset()或用>或用<=:表示二个集合是否是子集关系,返回的是boolean值。其中A.issubset(B):表示A是否是B的子集?即A的元素是否在B中都存在?B.issubset(A):表示B是否是A的子集?即B的元素是否在A中都存在?如a={1,2,3,4};b={1,2,3,4,5};c=a.issubset(b);print(c);

5)add():向某个set集合中增加值。例如a={1,2,3,4};c=a.add(5);print(c);

6)update():更新某个set集合中的值,有相同就保留一个,没有就会新增进去。例如a={1,2,3,4};c=a.update([4,5]);print(c);

7)remove():删除某个元素。例如a={1,2,3,4};c=a.remove(1);print(c);

8)pop():弹出操作,这个方法不用带参数,它是先进先出原则(即最左边的元素先被弹出)。例如a={1,2,3,4};c=a.pop();print(c);

十三.赋值机制

(1)指向同一内存空间,可用is直接进行比较是否相同。例如a=1000;b=a; 现在可用id打印出来看下,print(id(a));print(id(b)); 现在用is来比较一下:print(a is b);

(2)另外一种指向同一内存空间的情况。如果创建的2个对象的值是比较小的话,它会共用内存(指向同一块内存的)。例如a=1;b=1; 现在可用id打印出来看下,print(id(a));print(id(b)); 现在用is来比较一下:print(a is b);

(3)创建二个比较大的对象,会指向不同内存空间。例如a=1000;b=1000; 现在可用id打印出来看下,print(id(a));print(id(b)); 现在用is来比较一下:print(a is b);

十四.判断结构

(1)if 逻辑判断条件: ..... 意思是说如果判断条件成立,将做什么

(2)if 逻辑判断条件: .....  elif  逻辑判断条件: ...... else: ......,这里elif是可以写多个的。

注意上面二个结构中的冒号(:)是固定结构来的。逻辑判断条件会有很多的,例如 in,is,<,>,==,<=等等。

例如a=[1,2,3,4];if 1 in  a:print('ok');

又例如a={'age':1,name:'2,3,4'};if 'age' in  a:print('ok');

又例如a={1,2,3,4};if 3 in  a:print('ok');

十五.循环结构

(1)while  逻辑判断条件: …… 这里的逻辑判断就是说如果条件成立就会一直进入循环体中,直到不成立才会跳出循环体,所以一定要考虑会不会跳出循环体以不至于死循环。

例如 a=0 

while a<10:

      print(a) 

      a+=1

(2)while后面直接接集合(例如list,dict字典,set),就表示只要集合中的元素没循环完就不会跳出循环(也就是说它会循环完集合中的所有元素为止)。例如

a=set([1,2,3,4,5])

while  a:

     a.pop()

     print('abc')

(3)for  变量名  in  集合: …… 这里就是说对集合中元素一个一个遍历,每次遍历出来的值赋给变量名。

例如

a=set([1,2,3,4,5])

for name  in  a:

     print(name)

(4)in后面接索引值(集合写在外面,用range随机生成几个索引值<这里可用len(集合名)先计数出集合中有几个出来>,它是从0开始算第1个索引的):例如

a=['1','2','3','4','5']

for i  in  range(len(a)):

    print(a[i])

(5)continue:跳出当前循环,如果循环体的continue后面还有内容,这后面的内容将不再会被执行,直接执行下一循环。

例如

a=[1,2,3,4,5,6]

for i  in  range(len(a)):

    if a[i]%2==0:

         print(a[i])

   else:

       continue

   print(a[i])

(6)break:跳出整个循环,循环生命周期结束。

例如

a=[1,2,3,4,5,6]

for i  in  range(len(a)):

    if a[i]%2==0:

         print(a[i])

   else:

       break

   print(a[i])

注:continue与break通常是循环中的条件结构语句里加入。

十六.函数定义

(1)定义:def  函数名(): 函数体 或def  函数名(1到多个参数):函数体。这里一定用def开头。

(2)函数体中如果有return  要返回的值 就表示执行这个函数后将返回值给调用方,否则不返回。例如 

def  add(a,b):

        print('ok')

        return  a+b

(3)用*表示不定个数的参数,例如

def  add(a,*args):

        for  i  in  args:

              b +=i

       print(b)

调用代码为 add(1, 2,3,4,5)或add(1, 2)或add(1, 2,3)或add(1, 2,3,4)或add(1, 2,3,4,5)

(4)用**表示不定个数的字典参数(key:value形式),例如

def  add(a,**kwargs):

        for  k,v  in  kwargs.items():

               print(k,v)

调用代码如add(1,x=2,y=3)

十七.模块与包

(1)jupyter中在开头写上%%writefile  文件名.py   ,然后执行后就可以在本地生成一个py文件,当然用idea工具就不用这样(直接新建即可)。

(2)在jupyter运行这个文件用%run  文件名.py 

例如 %run  a.py

(3)import  指定路径或貝体指定到py文件名 ,这就表示引入貝体包或者貝体的py文件了。

(4)import  指定路径或貝体指定到py文件名  as  别名,这里用as就把貝体内容指定为别名,因为可能貝体名太长了。这样就可用别名.函数名或别名.变量名

(5)from  貝体指定到py文件名  import  py中定义的变量名,py中定义的函数名。这样就可直接用变量名与函数名了。而 from  貝体指定到py文件名  import  * 就表示py文件中定义的所有东西都被导进来了

十八.异常处理模块

(1)捕捉异常

try:

except  Exception:

这样会捕捉到所有异常(因为是用了Exception)

(2)finally后面的不管是否发生异常,它的内容都会执行。例

try:

finally:

又例如

try:

except  Exception:

finally:

(3)自定义异常类

用raise关键字

十九.文件操作

不管是读还是写文件,最后都要调用close()方法对文件进行关闭操作,读写文件一般都要捕捉异常处理。

(1)open(路径):按指定路径打开指定的文件

(2)对打开的文件调用read()方法,把文件中的内容全部读进来

(3)对打开的文件调用readlines()方法,把文件中的内容按一行一行读进来,放入到list集合中。例如

a=open(路径/a.py)

b=a.readlines()

print(type(b))

print(b)

(4)读完文件后还要调close()方法进行关闭操作

例如

a=open('路径/a.py')

b=a.readlines()

print(type(b))

print(b)

a.close()

(5)打开文件(加个'w'参数)后,调用write()来写内容到文件中。这里要注意用'w'模式的话会把原来的内容删除掉,只保存这次打开时写进去的内容。

a=open('路径/a.py','w')

a.write('absfjfdf')

a.write('\n')

a.write('12345')

a.close()

(6)打开文件(加个'a'参数)后,调用write()来写内容到文件中。这里要注意用'a'模式的话会在原来文件后追加内容进去。

(7)读写文件时捕捉异常,并用finally把文件关闭掉,否则容易出现问题。

例如 a=open('a.py','a')

try:

     for  i  in  range(10):

            a.write('abcdef')

            b=10/(i-5)

            a.write(i)

           print(b)

except  Exception:

      print('error')

finally:

     a.close()

(8)with可代替(7)中捕捉异常的内容,使里面的内容要么正常执行完,要么以异常方式终止。例如

with  open('a.py','a')  as  f:

       f.write(123456)

二十.类的基本定义

类是相对面向对象编程来说,把一些对象公共相同的属性,方法写到一个类中。当要调用这些属性或方法时,只要实例化出类的对象先就行。一个类可以实例化出很多对象。

(1)类的定义。一般结构如下

class  类名: 

     属性

    def  __init__(self,属性名):

    def  普通方法名(self):

对上面结构进行说明:关键字用class;__init__是初始化方法,也叫构造函数,当创建这类实例时,须执行这个构造函数,创建这类实例时要按构造函数传的参数格式构造;self表示本类实例。

(2)hasattr(实例名,'需判断的属性名'):用来判断这个对象中有没有这个属性

(3)getattr(实例名,'属性名'):按这属性名在这个实例中取出值来

(4)setattr(实例名,'属性名','新的属性值'):重新设置属性值。

(5)delattr(实例名,'属性名'):删除属性

二十一.类的属性操作

(1)类的内置属性

1)__doc__:类的帮助文档

2)__model__:类属于那个模块

3)__name__:类名

4)__bases__:类的父类

5)__dict__:类的构成结构

(2)继承

继承是子类继承父类的意思,它是把父类定义好的方法与属性直接拿来用,因为父类是对子类公共方法与属性进行上一层的抽象。例如动物这个父类定义可有吃,睡,说等方法,而子类狗就可直接继承父类这些方法了,同理子类猫也可继承父类这些方法。

1)子类继承父类格式。class  子类名(父类名):

2)子类继承父类后,当创建子类实例时只会调用子类的构造函数,不会去调用父类的构造函数的。实例化子类对象后,子类对象就可直接调用父类的方法与属性了。

3)方法重写。首先子类先继承父类,然后子类可对父类相同的方法进行重写。当子类调用重写后的方法的话就直接自己重写后的方法了,不会调用父类中相同的方法。

二十二.时间操作

(1)先用import导入时间类(time),这时就可调用里面方法对时间操作了。

(2)操作。

1)localtime():把时间戳转成能识别的格式。例如 time.localtime(time.time())

2)asctime():对时间进行格式化,例对1)中调用localtime()后的时间进行格式化。例如print(time.localtime(time.time()))

3)strftime(指定的时间格式,时间):指时间转成指定的格式。例如print(time.strftime('%Y-%m-%d %H:%M:%S,time.localtime()))

4)help():可查看方法等等的用法。例如print(help(time.strftime))

 

 

 

 

 

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://www.kler.cn/a/453882.html

相关文章:

  • 【elementplus】中文模式
  • 使用 .NET 6 或 .NET 8 上传大文件
  • 如何训练Stable Diffusion 模型
  • apt和apt-get软件包管理工具-debian
  • 嵌入式轻量级开源操作系统:HeliOS的使用
  • Pytorch | 利用AI-FGTM针对CIFAR10上的ResNet分类器进行对抗攻击
  • 初始化全部推断的寄存器、 SRL 和存储器
  • 两分钟掌握 TDengine 全部写入方式
  • 目录jangow-01-1.0.1靶机
  • Eclipse常用快捷键详解
  • 【3.1 以太网RDMA优化--网卡缓存资源维度】
  • Android--java实现手机亮度控制
  • react高阶组件及hooks
  • 透视网络世界:计算机网络习题的深度解析与总结【前3章】
  • 物联网乐鑫USB方案,设备互联和数据传输应用
  • Oracle 普通表至分区表的分区交换
  • chrome缓存机制以及验证缓存机制
  • springboot/ssm图书大厦图书管理系统Java代码编写web图书借阅项目
  • uniapp抖音小程序,如何一键获取用户手机号
  • ES学习module模块化(十二)
  • 新建一个springboot项目
  • 中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?
  • 深度学习实战103-基于KDD Cup 99数据集的搭建神经网络的检测系统(NIDS),通过对网络流量数据进行分析,提供完整代码
  • DALFox-一款XSS自动化扫描工具
  • GA-Kmeans-Transformer时序聚类+状态识别组合模型
  • vscode修改中文显示格式