python基础知识(python3) part1

  Python基础知识(python3)                             part1

一、python是什么?

Python 是一种面向对象的解释型语言,交互式解释器。采用空白符作为缩进,因为有强大的库,被称为胶水语言(可以把其他语言制作模块轻松结合在一起)。

二、Python 8个关键要素

数据类型、综合数据类型、输入输出、逻辑操作符、控制流语句、算数操作符、函数、对象引用。

三、数据类型

 

3.1与数据类型相关内容,标识符(变量)和关键词。

3.1.1标识符(3点,第一点第一个字符为字母或_下划线;第二点其他部分字母数字下划线组成;第三点区分大小写)

3.1.2 关键词-33

算数

引入

异常

控制

操作与状态

返回退出

定义

and

import

except

while

del

return

lambda

or

as

try

if

assert

yield

class

in

from

finally

else

True

continue

def

is

raise

elif

False

pass

global

not

with

for

None

break

nonlocal

3.2与数据类型相关内容,运算符与表达式

运算符

描述

lambda

Lambda表达式

or

布尔类型:或

and

布尔类型:与

in,not in

成员测试,即包含性测试

is,not is

同一性测试,是不是一个类型

<,<=,>,>=,==,<>

比较

**

指数

|

按位或

按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应

的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

^

按位异或

其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现。

&

按位与

双目运算符,其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0

<<,>>

移位

~

按位反转

~x=-(x+1)

+,-

加减或正负

*,/

乘除

%

取余

3.3 number数据类型

3.3.1整型intPython3取消long即长整型)

3.3.2浮点数float/double(科学计算法e)

3.3.3 复数complex a+bj 方法complex(1,2)=1+2j 前一个代表实部,后一个代表虚部。

3.3.4布尔bool,特殊的整型,共两个值TrueFalse

3.3.5数据类型的其他

3.3.5.1 进制及其转换

二进制

0bM二进制数。

零,字母b(不分大小写)M0~1的数字,

其他进制转换成二进制的方法:

bin() (全部小写)

八进制

0oM八进制数。

零,字母o(不分大小写)M0~7的数字,

其他进制转化成八进制方法:

oct()(全部小写,字母o)

十六进制

 0XM(M:0~F) 16进制数。

零,字母x(不分大小写)M0~9abcdef

其他进制转化成十六进制方法:

hex() (全部小写)

         

3.3.5.2浮点数的精度问题:精度获取decimal

https://www.cnblogs.com/ShaYeBlog/p/7646649.html

decimal(获取浮点数的详细精度值)

from decimal import *

decimal()

round()近似于四舍五入 round(x,y)为数值,只填x的时候,y默认为0,即保留的小数点位数为零。

花时间完善这部分内容

3.4 string数据类型

3.4.1字符串的说明

a、字符串是字符的序列,字符串是不可变的。即不能对字符串中的某一项进行修改。

其修改只能通过切片,加拼接的方式进行重新赋值。A=a[0:2]+’d’+a[-1],’d’为要修改的字符。

b、 三种引号的区别 (单引号’,双引号’’,三引号’’’,都是成对的用)

c、转义符 \,将有特殊含义的字符转义。

3.4.2常用的字符串操作方法

说明max(string)min(string)是函数,注意:函数,即 函数1(内容);方法,什么东西.方法1(可     以有形参)

 

❶字符串,首字母的大写

string.capitalize() 例如’abc’..capitalize() 输出Abc

字符串居中,设定宽度(使用空格去填充使字符串居中)

String.center(x),x为字符串指定的宽度。

❸计算字符串中某一个字符的数量

String.count(str,begin=0,end=len(string))

String为字符串,str为目标字符,begin为寻找的起始位置,end可以为len(string),默认begin=0,end=len(string))整个字符串长度。

例如’hallo’.count(‘l’)2

❹ 查找子串所在的索引,没找到返回-1,不报错。

String.find(str,begin=0,end=len(string))

❺ 查找子串所在的索引,没找到返回异常,报错。

String.index(str,begin=0,end=len(string))

❻ 检测字符串是否是某个字符或者某个子串结尾

String.endswith(str,begin=0,end=len(string))

返回TureFalse

❼ max(string)min(string)返回最大字母或最小---这个是函数

去除两端的空格(指定的内容obj,obj默认是空格)

String.strip(obj)

例如:’//sh//’.strip(‘/’) 返回sh

❾stringstr2替换str1,num指定替换次数(默认str1出现的次数)

String.replace(str1,str2,num)

结合方法3String.count(str,begin=0,end=len(string))

3.4.3字符串的基本操作

*

重复输出字符串

例如Print’*’*3)=***

+

字符串拼接

[]

索引取出字符

in

子串包含的判断

3.4.4注释

Python没有多行注释,只有单行注释#ctrl+?),那如何实现一个多行注释的效果呢?

三引号,三引号里面的内容会保留所有的格式,加上三引号后就成一个字符串了,没人去接收,没有什么含义就达到了注释的效果。

四、综合数据类型

综合数据类型,又叫数据结构,即数据以什么形式进行存储。

综合数据类型,含list列表、tuple元祖、sets集合、dictionary字典,其中列表、元祖以及字符串都是序列,序列有什么特点呢?

序列有两个主要的特点:

a、索引操作符 [0]

b、切片操作符 [0:3:1] 。 切片可以正向、反向取,注意前闭后开的索引取值,所谓的前后是相对于切片的方向而言的,里面的参数依次是切片的起始,终止参数,步长。

做切片要注意区间范围,是一个包含关系。

4.1列表list(),方括号[]去定义。

List是处理一组有序项目的的数据结构,即你可以在一个列表中存储一个序列的项目。

与字符串一样,列表可以被索引和切片。

list 中的元素是可以被改变的

 

4.1.1列表的常规操作

a、访问列表中的值 例如list[0]

b、更新列表..........采用切片,例如切片list=list[0:3]+’b’;改变元素list[2]=list[0]*list[1]

c、删除列表元素......例如删除整个列表del list1,删除列中中元素:del list1[0]

4.1.2列表函数及方法

增加元素,增加一个新元素,obj任意类型。

 list.append(obj)   例如list1.append([1,2])           

追加列表或序列,增加一个新列表,obj代表序列(列表、字符串)

 list.extend(obj)   例如list1.extend([1,2])  

❸len()函数,列表的长度   

❹查询某个元素在列表中出现的次数

list1.count(obj)

❺查询列表中元素的索引下标

list.index((str,begin=0,end=len(list))

❻根据索引下标,删除列表中的元素

list.pop()

Pop()方法,括号中无参数默认是删除最后一个,而且会返回删除的元素

❼根据列表的元素,删除列表中的元素

List.remove()

remove()方法中,括号中的值为要删除的元素。删除不返回删除的值。

❽列表元素反向

list.reverse() 可以做回文数判断的事情。

❾列表排序

list.sort()

数字最小,接下来是字母,排序分很多种,这里是快速排序。

4.2元祖tuple()

元祖用圆括号()表示,元祖与列表类似,不同之处在于元祖的元素不能修改(字符串也是不能修改的,列表元素可修改)可以把字符串理解成元祖。

圆括号内多个序列,代表元祖。

注意tuple1=1,2,3,4tuple1=(1,2,3,4)一样,注意列表不要省略了中括号[]。因为元祖是用逗号分隔的无关闭分隔符。

4.2.1元祖的常规操作

访问元祖

索引,tuple1[0]的方式访问元祖中的元素。

修改元祖

拼接,tuple3=tuple1+(1,2)

删除元祖

只能全删del tuple1,因为元祖的元素不能修改。

无关闭分隔符

以逗号分隔,可以不要圆括号,

例如1,2,3 默认是(1,2,3)也是一个

元祖,定义元祖可以不加括号。

4.2.2元祖的内置函数

列表可以转换成元祖。-----tuple(list1)

元祖转换成列表-----通过循环遍历,将元祖中的每一项存到列表中去。

4.3 字典dictionary{‘x’:’y’}

字典是另一种可变容器模型,且可存储任意类型对象。(list列表也是可变容器模型)

特点:可以设置索引值,索引值可以自定义。常见的作为索引,比如字符串,作为键值,对象不可以作为索引。

字典是花括号定义的。每个键值对用冒号分隔,键值对之间通过逗号进行分隔。

整个字典包裹在花括号之中的。

4.3.1字典的常规操作

访问字典里的值

dict1[‘键’]  例如dict1[‘username’]

修改字典

直接修改,例如dict1[‘username’]=’杨幂’

删除字典元素

-del dict1[‘username’] 删除的是键值对。

增加元素

列表是不可以直接添加元素,字典可以,例如:dict1[‘age’]=8 添加键值对或覆盖键值。

4.3.2字典键的特性

a、不允许同一个键出现多次,以最后一个值为准。例如dict1={‘a’:1,’a’:2}输出dict1={‘a’:2}

b.键不可变,所以可以为数字、字符串、元祖,但是不能为列表,列表为可变容器。

tuple2=(1,2,3)

tuple2=[1,2,3]

dict2={tuple2[0]:1,tuple2[1]:2}都行,但是如果是dict2={tuple2:1}那么列表是不行的。

4.3.3字典内置函数及方法

❶删除字典元素

a、清空字典,保留字典的空间。

dict1.clear()

b、删除字典,不保留字典空间。

del dict1

★★❷浅复制

dict.copy()

(深拷贝一级目录,更深级的目录采用引用方式(拷贝指针))这里需要注意的是字典和列表的修改后的物理位置的问题。

https://www.cnblogs.com/Eva-J/p/5534037.html

创建一个新字典,以序列seq中元素作为字典键,val为所有键的默认值。

dict1 .fromkeys(seq[val])  方括号[]代表选填。

例如dict1={‘a’:1}

dict2=dict1 .fromkeys(‘hello’[0]) {‘h’:0,’e’:0,’l’:0,’l’:0,’o’:0} dict1没有关系,只是借助dict1的字典方法。

★★★❹返回指定的键的值

如果键不存在,返回default值,这个以后经常用到。

dict1.get(key,default)    即是没有这个键也不会产生异常,不会影响程序的运行,建议使用这个方法。

❺判断某个键是否存在

dict1.has_key(key1)  返回TrueFalse

❻以列表形式返回所有的键名。

dict.keys()  注意是keys

以列表的形式返回可遍历的(键值)元祖数组。注意键值对,是键、值得匹配对。

dict1.items()

❽以列表的形式返回所有的值

dict1.values()

★❾get()升华版,假如键不存在,则增加键设置值为default,如果存在的话就返回原来键对应的值,且原来的值不做修改。

dict1.setdefault(key,default)

dict1.setdefault(‘b’,’cctv’)

字典2追加到字典1中,并且执行更新操作。(先追加再更新,字典的键只可能有一次,并以最后的一个为准)

dict1.update(dict2)

4.4 集合set()

集合和字典是类似的,它是一组key的集合,但是不存储value

集合的特性就是key不能重复,与字典一样。重复了只能算一个。

注意集合无序。字典也是无序的。

4.4.1集合的操作

创建集合

Set1={1,2,3...}

转化为集合

set()

列表转集合:set(list) ,另外元祖也可以转化成集合采用set(tuple),注意元祖转化的时候包圆括号。Set(1,2,3)报错,set((1,2,3))就可以了。

字符串可转换成集合set(string)),另外字典转换元祖后只有key值。

Num不可转换成集合。列表的转集合一定要有[]包裹。

遍历集合

for

通过索引是得不到它的元素,不能像字符、列表、字典被索引,但是可以采用遍历的方法,for i in set1

添加元素

set.add(obj) obj为任意类型

删除元素

set.remove(obj),

obj为集合中你想删除的元素。

★★★★交集/并集/差集

&交集,|并集,-差集

&交集,| 并集, - 差集

定义s1={1,2,3,4}s2={3,6,9}

&交集,例如s1&s2输出{3}}

-差集,例如s1-s2 输出{1,2,4}

|并集,例如s1|s2 输出{1,2,3,4,6,9}

跟算法有关系,经常把列表编程集合。

五、输入输出

5.1输入input()函数

通过input得到的数据都是字符型,

可以通过eval()函数自动转换成相应的数据类型,注意使用eval()后,输入的字符串时加引号。

5.2 输出print()函数、format()方法。

format()方法如下:

a=’{}{}{}’.format(2018,5,3) 其中{}是占位符,{}中未空值的时候,format()中的参数会依次赋值给前面的{}。当然可以通过在{}中添加format()中的索引值来被赋值。

format()科学计算法

例如format(1000,’2e’)

sql注入的时候会用到format()方法输出。

5.3格式化输出

 整型

%o —— 八进制
   %x —— 十六进制

%f 浮点数

%s 字符串

%e 科学计数法

例如a=’%s’%n 注意n%s类型对应。

例如.2f 小数点保留两位

例如3.2f 小数点保留两位,数的长度设定为3 99乘法表好看。

例如-3.2f 小数点保留两位,数的长度设定为3,左对齐。

例如03.2f 小数点保留两位,数的长度设定为3,不足的位数用0表示。

猜你喜欢

转载自blog.csdn.net/jn10010537/article/details/80212446