python基础

一、函数:

1、评估函数eval():去掉参数最外侧引号并执行余下语句的函数

eval(<字符串或字符串变量>)   

  >>>eval("1")

  1

  >>>eval("1+2")

  3

  >>>eval(' "1+2" ')
  '1+2'

2、输入函数input():从控制台获得用户输入的函数

使用格式:<变量>=input(<提示信息字符串>)

用户输入的信息以字符串类型保存在<变量>中

二、字符串的使用:

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

1、索引:返回字符串中单个字符    <字符串>[M]

例如:TempStr[-1]:获得该字符串的最后一个字符(从0开始计数,即0代表第一个字符。反过来从-1开始计数,即-1代表最后一个字符)

2、切片:返回字符串中一段字符子串  <字符串>[M:N]

例如TempStr[0:-1]:相当于取第一个字符到最后一个字符之前(不包括最后一个字符,即相当于把该字符串的最后一个字符去掉)

TempStr[ : ]:相当于截取字符串的全部字符

TempStr[ 6 : ]截取第七个字符到结尾

TempStr[  : -3]截取从头开始到倒数第三个字符之前

TempStr[ ::-1] 创造一个与原字符串顺序相反的字符串

3、更高级切片:<字符串>[M:N:K]  根据步长k对字符串切片

比如:“零一二三四五六七”[1:8:2] 结果是“一三五七”

4、字符串操作符

操作符及使用描述
x+y连接两个字符串x和y
x*n 或n*x复制n次字符串x
x in s如果x是s的子串,返回True,否则返回False

5、字符串处理函数 

函数及使用描述
len(x)返回字符串x的长度。len(“123一二三”)结果为6
str(x)任意类型x所对应的字符串形式
hex(x)或otc(x)整数x的十六进制或八进制小写形式字符串
chr(u)u为Unicode编码,返回其对应的字符
ord(x)x为字符,返回其对应的Unicode编码

 

6、字符串处理方法

方法及使用描述
str.lower()或str.upper()返回字符串的副本,全部字符小写/大写
str.split(sep=None)

返回一个列表,由str根据sep被分隔的部分组成

例如:str4 = '123423664234'

           print(str4.split('2'))                  结果为:['1', '34', '3664', '34']

str.count(sub)返回字串sub在str中出现的次数
str.replace(old,new)

返回字符串副本,所有old子串被替换为new

str.center(width[,fillchar])

字符串str根据宽度width居中,fillchar可选

比如:“python”.center(20,“=”)结果为:

“=======python=======”

str.strip(chars)

从str中去掉左侧和右侧chars中列出的字符

比如:“= python= ”.strip(“ =np”)结果为:“ytho”

str.join(iter)

在iter变量除最后一个元素外每个元素后增加一个str

比如“,”.iter(“12345”)结果为:“1,2,3,4,5”#主要用于字符串分隔

7、字符串的格式化

format()方法的格式控制

(1):引导符号的前三个格式控制

<填充><对齐><宽度>例子
引导符号用于填充的单个字符

<左对齐

>右对齐

^居中对齐

槽设定的输出宽度

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

结果为:'=======python=======''

 

 默认情况下为以空格填充,右对齐

 (2):引导符号的后三个引导控制

<,><.>精度<类型>例子

数字的

千位

分隔符

浮点数小数精度或

字符串最大输出长度

整数类型b,c,d,o,x,X

浮点数类型e,E,f,%

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

结果为:'12,345.68'

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

结果为:'110101001,Ʃ,425,651,1a9,1A9'' 

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

结果为:“3.140000e+00,3.140000E+00,3.140000,314.000000%”

四、for循环

1、for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

例如:如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:

>>> list(range(5))
[0, 1, 2, 3, 4]

range(101)就可以生成0-100的整数序列,计算如下:

sum = 0
for x in range(101):
    sum = sum + x
print(sum)

 2、循环的扩展

循环与else:当循环没有被break语句退出时,执行else语句块(else语句块作为“正常”完成循环的奖励,和异常中的else用法相似)。

五、标准库和第三方库

Python计算生态=标准库+第三方库。

标准库:随解释器直接安装到操作系统中的功能模块。

第三方库:需要经过安装才能使用的功能模块。

import <库名>  as <库别名>

<库别名>.<函数名>(<函数参数>)

六、标准库turtle

1、turtle.setup(width,height,startx,starty);

startx(starty):表示窗体左上角距离屏幕的横向距离(纵向距离)。

setup()设置窗体大小及位置,4个参数后两个参数可选。(后两个参数没写默认窗体显示在屏幕正中间)setup()函数不是必须得使用的。

2、画笔控制函数-----画笔设置后一直有效,直至下次重新设置

turtle.penup() 别名 turtle.pu()

抬起画笔,海龟在飞行(意思是说海龟的飞行路径不会显示在画布上)

turtlr.pendown() 别名  turtle.pd()

落下画笔,海龟在爬行(意思是说海龟的飞行路径会显示在画布上)

turtle.pensize(width)  别名 turtle.width(width)

设置画笔宽度

3、运动控制函数-----控制海龟行进:走直线&走曲线

(1)走直线:turtle.forward(d)  别名  turtle.fd(d)

向前行进,海龟走直线(d:行进距离,可以为负数,负数即倒着走)

(2)走曲线:turtle.circle(r,extend=None)

根据半径r绘制extend角度的弧形,r:默认圆心在海龟左侧r距离的位置。extend:绘制角度,默认是360度整圆

 4、方向控制函数

(1)绝对角度:turtle.setheading(angle)  别名  turtle.seth(angle)

改变行进方向,海龟走角度。angle:旋转的角度

(2)海龟角度:

turtle.left(angle)   : 海龟向左转

turtle.right(angle) : 海龟向右转

-angle:旋转的角度

七、基本数据类型

1、整数类型(没有取值范围限制)

(1)十进制:10,66

(2)二进制:以0b或0B开头:0b010,-0B101

(3)八进制:以0o或0O开头:0o123,0O246

(4)十六进制:以0x或0X开头:0x9a,0X89

2、pow(x,y)函数:计算x的y次幂,想算多大就算多大

3、浮点数类型

(1)带有小数点及小数的数字

(2)浮点数取值范围和小数精度都存在限制,但常规计算可忽略

(3)取值范围数量级约-10的308次方至10的308次方,精度数量级10的-16次方

(4)浮点数间运算存在不确定尾数,不是bug。比如0.1+0.2=0.30000000004

4、round(x,d)函数:对x四舍五入,d是小数截取位数 。(可用于浮点数间运算及比较)

5、科学计数法表示

使用字母e或E作为幂的符号,以10为基数,格式如下:

<a>e<b>   表示a乘以10的b次方

例如:4.3e-3值为:0.0043   9.6E5值为:960000.0

6、操作符

x**y:x的y次幂

x/y:x与y之商:10/3=3.33333

x//y:整数除:10//3=3

7、类型间可进行混合运算,生成结果为“最宽”结果。

三种类型宽度比较:整数<浮点数<复数

八、标准库Random

1、基本随机数函数

函数描述
seed(a=None)初始化给定的随机数种子,默认为当前的系统时间
random()生成一个[0.0,1.0)之间的随机小数

2、扩展随机数函数

函数描述
randint(a,b)

生成一个[a,b]之间的整数

randrange(m,n[,k])生成一个[m,n)之间以k为步长的随机整数 
getrandbits(k)生成一个k比特长的随机整数
uniform(a,b)生成一个[a,b]之间的随机小数(生成的小数保留小数点后16位)
choice(seq)

从序列seq中随机选择一个元素

例如:random.choice([1,2,3,4,5,6,7,8]);结果为8

shuffle(seq)

将序列seq中元素随机排列,返回打乱后的序列

s=[1,2,3,4,5,6,7,8];random.shuffle(s);print(s)

(代码放在同一行要以分号分开)

结果为:[3,5,8,9,6,1,2,7,4]

九、函数

1、在局部变量里面使用全局变量:

在函数中使用global保留字声明此处s是全局变量s 。

2、局部变量为组合数据类型且未创建,等同于全局变量。

3、lambda函数

lambda函数是一种匿名函数,即没有名字的函数,返回函数名作为结果。

lambda函数用于定义简单的、能够在一行内表示的函数。

格式:<函数名>=lambda <参数>:<表达式>

4、函数的参数传递

(1)可选参数:函数定义时可以为某些参数指定默认值,构成可选参数。(可选参数一定要放在非可选参数后面)

(2)可变参数:函数定义时可以设计可变数量参数,即不确定参数总数量。用*加个字符表示不确定参数

 格式: def<函数名>(<参数>,*b):

                  <函数体>

                 return <返回值>

(3)函数调用时,参数可以按照位置或者名称方式传递。

注意:谨慎使用lamdba函数。lamdba函数主要用作一些特定函数或方法的参数。

5、函数的返回值

(1)函数可以返回0个或多个结果。

(2)return保留字用来传递返回值。

(3)函数可以有返回值也可以没有,可以有return也可以没有。

(4)return可以传递0个返回值,也可以传递任意多个返回值。

十、标准库Time

函数描述
time()获取当前时间擢,即计算机内部时间值,浮点数
ctime()

获取当前时间并以易读方式表示,返回字符串

例如:time.ctime()  结果为:‘Fri  Jan  26  12:11:16  2018’

gmtime()

获取当前时间,表示为计算机可处理的时间格式

time.gmtime()  结果为:time.struct_time(tm_year=2019, tm_mon=7, tm_mday=29, tm_hour=15, tm_min=28, tm_sec=48, tm_wday=0, tm_yday=210, tm_isdst=0)

(2)时间格式化

函数

描述

strftime(tpl,ts)

tpl是格式化模板字符串,用来定义输出效果。ts是计算机内部时间类型变量。

t=time.gmtime()

time.strftime(“%Y-%m-%d %H:%M:%S”,t)   结果为:‘2019-07-26 23:34:24’

strptime(str,tpl)

str是字符串形式的时间值

tpl是格式化模板字符串,用来定义输入效果

例如:timestr=‘2019-07-29  23-46-24’

time.strptime(timestr,“%Y-%m-%d %H:%M:%S”)

结果为:time.struct_time(tm_year=2019, tm_mon=7, tm_mday=29, tm_hour=15, tm_min=28, tm_sec=48, tm_wday=0, tm_yday=210, tm_isdst=0)

 

(3)格式化字符串的标志

格式化字符串日期/时间说明值范围和实例
%Y年份0000~9999  
%m月份01~12
%B月份名称Jaunary~December
%b月份名称缩写Jan~Dec
%d日期01~31
%A星期Monday~Sunday
%a星期缩写Mon~Sun
%H小时(24h制)00~23
%I小时(12h制)01~12
%p上/下午AM,PM
%M分钟00~59
%S00~59

十一、第三方库PyInstaller

1、概括:

将.py源代码转换成无需源代码的可执行文件

2、安装第三方库需要使用pip工具

通过在cmd命令行输入pip install pyinstaller

3、常用参数

参数描述
-h查看帮助
--clean清理打包过程中的临时文件
-D,--onedir默认值,生成dist文件夹
-F,--onefile在dist文件夹中生成独立的打包文件
-i <图标文件名。ico>指定打包程序使用的图标(icon)文件

十二、第三方库jieba库 

(1)通过在(cmd命令行)输入:pip install jieba

(2)jieba是优秀的中文分词第三方库。(中文文本需要通过分词获得单个的词语)

(3)jieba分词的三种模式:

精确模式:把文本精确的切分开,不存在冗余

全模式:把文本中所有可能的词语都描述出来,有冗余

搜索引擎模式:在精确模式基础上,对长词再次切分

函数描述
jieba.lcut(s)

精确模式,返回一个列表类型的分词结果

jieba.lcut(“中国是一个伟大的国家”)

[‘中国’,‘是’,‘一个’,‘伟大’,‘的’,‘国家’]

jieba.lcut(s,cut_all=True)

全模式,返回一个列表类型的分词结果,存在冗余

jieba.lcut(“中国是一个伟大的国家”,cut_all=True)

[‘中国’,‘国是’,‘一个’,‘伟大’,‘的’,‘国家’]

jieba.lcut_for_search(s)

搜索引擎模式,返回一个列表类型的分词结果,存在冗余

jieba.lcut_for_search(“中华人民共和国是伟大的”)

[‘中华’,‘华人’,‘人民’,‘共和’,‘共和国’,‘中华人民共和国’,‘是’,‘伟大’,‘的’]

jieba.add_word(w)

向分词词典增加新词w

jieba.add_work(“蟒蛇语言”)

十三、组合类型

1、集合

(1)集合类型的定义:集合是多个元素的无序集合。(并且每个元素是唯一的,即不重复的)

(2)集合用大括号{}表示,元素间用逗号分隔

(3)建立集合类型用{}或set()

(4)建立空集合类型,必须使用set()(因为空大括号代表的是生成空字典类型的)

例如:>>>A={“python”,123,(“python”,123)}

         结果为:{123,‘python’,(‘python’,123)}

        >>>B=set(“pypy123”)

        结果为:{‘1’,‘p’,‘2’,‘3’,‘y’}

2、集合操作符

操作符及应用描述
S | T返回一个新集合,包括在集合S和集合T中的所有元素(相当于并)
S - T返回一个新集合,包括在集合S但不在集合T中的元素(相当于差)
S & T返回一个新集合,包括同时在集合S和集合T中的元素(相当于交)
S ^ T返回一个新集合,包括集合S和集合T中的不相同元素(相当于补)
S <= T或S < T返回True/False,判断S和T的子集关系
S >= T或S > T返回True/False,判断S和T的包含关系

3、集合处理方法

操作函数或方法描述
S.add(x)如果x不在集合S中,将x增加到S
S.discard(x)移除S中元素x,如果x不在集合S中,不报错
S.remove(x)移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear()移除S中所有元素
S.pop()从集合中随机取出一个元素,返回给用户,同时在集合中删除这个元素,更新S。若S为空产生KeyError异常
S.copy()返回集合的一个副本
len(S)返回集合S的元素个数
x in S判断S中元素x,x在集合S中,返回True,否则返回False
x not in S判断S中元素x,x不在集合S中,返回True,否则返回False
set(X)将其他类型变量x转变为集合类型

4、应用场景

关系比较和数据去重(最重要)

5、序列类型定义

(1)序列具有先后关系的一组元素

(2)序列是一维元素向量,元素类型可以不同

(3)元素间由序号引导,通过下标访问序列的特定元素

(4)序列是一个基类类型,包括字符串类型、元组类型、列表类型

6、序列类型通用操作符

操作符及应用描述
x in s如果x是序列s的元素,返回True,否则返回False
x not in s如果x是序列s的元素,返回Fasle,否则返回True
s + t连接两个序列
s*n 或 n*s将序列s复制n次
s[i]索引,返回s中的第i个元素,i是序列的序号
s[i:j]或s[i:j:k]切片,返回序列s中第i到j以k为步长的元素子序列

7、序列通用函数和方法

函数和方法描述
s.index(x)或s.index(x,i,j)返回序列s从i开始到j位置中第一次出现元素x的位置

s.count(x)

返回序列s中出现x的总次数

8、元组类型定义(可用于数据保护)

(1)元组是序列类型的一种扩展,继承了序列类型的全部通用操作。

(2)元组是一种序列类型,一旦创建就不能修改

(3)使用小括号()或tuple()创建,元素间用逗号,分隔

(4)可以使用或不使用小括号 

creature="Cat","Dog","Tiger","Human"
color=(0x01001,"blue",creature)
color[-1][2] //结果为‘Tiger’,因为第一个索引到creature,又因为creature也是元组类型,所以接着索引creature的第二个元素

9、列表类型定义

(1)列表是序列类型的一种扩展,创建后可以随意被修改

(2)使用方括号[]或list()创建(就是真正创建列表,如果通过赋值的话,只是值传递,即名字不同,但是指的是用一个列表),元素间用逗号,分隔。

(3)列表中各元素可以不同,无长度限制。

10、列表类型操作函数和方法

函数或方法描述
ls[ i ]=x替换列表ls第i个元素为x
ls[i:j:k]=it用列表it替换ls切片后所对应元素子列表
del ls[i]删除列表ls中第i个元素

del ls[i:j:k]

删除列表ls中第i到第j以k为步长的元素
ls+=lt更新列表ls,将it元素增加到列表ls中
ls*=n更新列表ls,将元素重复n次
ls.append()在列表ls最后增加一个元素x
ls.clear()删除列表ls中所有元素
ls.copy()生成一个新列表,赋值ls中所有元素

ls.insert(i,x)

在列表ls的第i位置增加元素x
ls.pop(i)在列表ls中第i位置元素取出并删除该元素
ls.remove(x)将列表ls中出现的第一个元素x删除
ls.reverse()将列表ls中的元素反转

11、字典类型定义(表达键值对数据,进而操作它们,如统计数据出现的次数)

(1)字典是键值对的集合,键值对之间无序

(2)采用大括号{}和dict()创建,键值对用冒号表示。

(3)d[key]方式既可以索引,也可以赋值。

例如:<字典变量>={<键1>:<值1>,<键2>:<值2>}

<值>=<字典变量>[<键>]            <字典变量>[<键>]=<值>

函数或方法描述
del d[k]删除字典d中键k对应的数据值
k in d判断键k是否在字典d中,如果在返回True,否则False
d.keys()返回字典d中所有的键信息
d.values()返回字典d中所有的值信息
d.items()返回字典d中所有的键值对信息
d.get(k,<default>)键k存在,则返回相应值,不在则返回<default>值
d.pop(k,<default>)键k存在,则取出相应值,不在则返回<defalut>值
d.popitem()随机从字典d中取出一个键值对,以元组形式返回
d.clear()删除所有的键值对
len(d)返回字典d中元素个数

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值