python基础笔记0_1

Python声明:

1. 如果没有此文件编码类型的声明,则python默认以ASCII编码去处理如果你没声明编码,但是文件中又包含非ASCII编码的字符的话,python解析器去解析的python文件,自然就会报错了。

2. 必须放在python文件的第一行或第二行

3. 支持的格式,可以有三种:

① 带等于号的:  # coding=<encoding name>

② 最常见的(大多数编辑器都正确识别)

#!/usr/bin/python

# -*- coding=<encoding name> -*-   

③ Vim的:  

#!/usr/bin/python

# vim: set fileencoding=<encoding name> :

#!/usr/bin/env python与#!/usr/bin/python的区别

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法

注释:

    #注释的作用:

1.标注代码,提高可读性,方便后期维护     2.用于调试程序,排查错误

    #注释符号 :

  单行用#                                           多行用''' 或 """         

数据类型:

Python中可以自定义数据类型,可以具有无限种数据类型。

6种标准数据类型:1.Number类型  整型   2.String类型   字符串类型  3.List类型  列表类型   4.Tuple类型  元组类型   5.Set类型   集合类型    6.Dict类型  字典类型

    整型:

  0o是八进制     0b是二进制     0x是十六进制 
                

 intvar = 3

查看变量值 print(intvar)

查看变量类型print(type(intvar))

    浮点型:           Float

(1) 小数方式

floatvar = 3.141592

Print floatvar

(2) 科学计数法

floatvar = 11e2 或 11e-2  # 相当于1022的平方

布尔类型:       Boolean

#该类型只有两个值  True  False

boolvar = False    #不写引号

result = 5 > 3

print(result,type(result))

复数类型:      Complex 

例子:

Comvar = 5 + 3j   可以+*/

Comvar = 5 4)   

字符类型:              String

单引号:

    变量 = '内容'

双引号:

    变量 = "内容"

三引号:

    变量 = '''内容'''

 变量 = """内容"""

例子:

Strvar = '3'       3 与3’ 两者类型不同,

\\       反斜杠符号(\)     

\        续行

\'       单引号          

\"       双引号        

\n       换行             *

\v       纵向制表符

\t       横向制表符        *Tab

\r       回车             *表示回到当前行的开头从新输出  回车和回车键完全不同

回车键:\r\n (windows)   或者 \n linux) 或者 \r (unix 早期mac) 表示换行

#元字符串:  字符串前面加Rr,就不显示转义符号


 列表类型:          List 

   代表符号  [ ]

例子:

List_1 = ['胡','宏','002']

print (List_1[2])  # 获取某个数据

List_1[2] = '003'  #修改某个数据

List_1.append('d') #添加数据

List_1.insert1'f'#指定插入某个位置

List_1.pop()List_1.pop(i) #删除末尾元素或指定元素

 元组类型 :    Touple

例子:Tuplevar = ('001','002','003')    #新建一个数据的元组,必须带有一个逗号,括号有没有无所谓    

空值是var = ()

Tuplevar[1]='004'    #元组型无法修改数据

字典类型:           Dict         

字典就是具有键值映射关系的一组无序数据组合,可以修改

例子:dictvar = {'伟大':'祖国','三国':'曹操','水浒':'宋江'}

print (dictvar['伟大'])

dictvar['伟大'] = '五千年'

print (dictvar)

 集合类型     Set类型              没有标志符号

一组特定数据的无序组合,所有数据不会重复(基本功能包括关系测试和消除重复元素,无法修改数据)

空值为set()

例子:setvar = {1,1,33,44,55,33,4}转换

           print(setvar)

数据类型的转换

#分类: 自动数据类型转换(隐式转换)和强制数据类型转换(显示转换)

#自动类型转换

1. 自动类型转换在适当时候自动发生无需人工干预

2. 自动类型转换多发生在运算或者判断过程当中

3. 运算自动类型转换会向着更加精确的数据类型转换

#强制类型转换

1. 整数不需要转换

2. 浮点数转换为整数,去掉小数部分

3. 布尔值 True转换为1   False转换为0

4. 复数无法转换

5. 字符串仅有整数和浮点数的字符串可以转换其余都不行

6. 列表元组集合字典无法转换

#布尔值转换

能够转换为false 的情况:

整型:0  布尔值:False

浮点数:0.0   复数: 0j   

字符串:空的字符串    

空的列表元组字典集合  转换为False,其余都为1

#复数转换

1、整型转换之后  +0j

2、浮点数转换  +0j

3、布尔值  True ->1 + 0j     False -> 0j

4、复数无需转换

5、字符串整数和浮点数字符串可以转换    先转换为对应的实数 +0j

6、列表元组字典集合 无法转换

#字符串转换

任何数据转换为字符串都是原样输出

查看转换过程  repr()

#列表转换  

#容器:能够同时存放多个数据类型成为容器:元组,列表,字典集合还有字符串

字符串:转换之后,每个字符赋成为列表中的每一个数据

元组:转换之后内容和顺序不变

列表:无需转换

集合:转换之后内容不变,顺序随机

字典:转换之后,仅将目录提取出来转换为列表,值舍弃

#元组转换  

字符串:转换之后,每个字符赋成为元组中的每一个数据

元组:无需转换

列表:转换之后内容和顺序不变

集合:转换之后内容不变,顺序随机

字典:转换之后,仅将目录提取出来转换为元组,值舍弃

#集合转换

字符串:转换之后,每个字符赋成为集合中的一个数据,顺序随机,重复数据,只保留一份

元组:转换之后,顺序随机,重复数据只保留一份

列表:转换之后,顺序随机,重复数据只保留一份

集合:无需转换

字典:转换之后,仅将目录提取出来转换为集合,值舍弃

#字典转换

字符串:无法转换为字典

列表,元组,集合转换成字典必须保证为二级容器,并且第二级必须有2个数据

二级集合,目前只能放元组   不能放列表,集合,字典

例子:二级列表: var = [

[zj,钟馗],

[zj,钟无言],

]

二级集合: var = {

zj,钟馗,

zj,钟无言),

}

 

算法运算:

加法运算 + , 减法运算 -, 乘法运算 *,除法运算 / ,取余运算 %,取商运算 // (地板除),幂运算 **

a = 1 + 1  a = 2 / 1   a = 4 % 3  a = 4 ** 3  a = 5 // 3

 

比较运算:

大于运算 > ,小于运算 <,大于等于运算>=,小于等于运算<=,等与运算==,不等于运算 !=

例子:

Result = 6 > 3

Print (result)

Result = 6 < 3

Print (result)

Result = 6 >= 3

Print (result)

Result = 6 <= 3

Print (result)

Result = 6 == 3

Print (result)

Result = 6 != 3

Print (result)

Result = 5 == 5  #只要类型(6大类型)不相同 就是不等于

 

赋值运算:

Var = 10

Var = var +5  # 可写成var += 5    (注:需等号两边是同一个变量)

Print var)           

逻辑运算:

逻辑与运算 (有假则假)

Result = False and False

逻辑或运算 (有真则真)

Result = False or False

逻辑非运算 (真变假,假变真)

Result = not True

异或运算 (相同为假,不同为真)(Python中无此运算)

Result = False xor True

python中 and 和 or 运算的核心思想 ——— 短路逻辑

    表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。

表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。

    若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。


位运算:

1. 按位与运算 &  

运算规则:0&0=00&1=01&0=01&1=1;即:两位同时为“1”,结果才为“1”,否则为000

例子:n1 = 2  n2 = 4   result = n1 & n2

2. 按位或运算 |

运算规则:0|0=00|1=11|0=11|1=1;即 :参加运算的两个对象只要有一个为1,其值为111

例子:n1 = 2  n2 = 4   result = n1 | n2

3. 按位非运算  ~  #正数=负数加1  负数=正数减一

将一个数字的二进制形的每一个二进制数字取反所得到的结果

例子:n1 =200   result = ~n1

4. 按位异或运算  ^

运算规则:0^0=00^1=11^0=11^1=0;即:参加运算的两个对象,如果两个相应位为(值不同),则该位结果为1,否则为001

例子:No1 = 24 no2 = 17 result = no1 ^ no2

5. 左移运算  左移一位相当于*2

形式: A << n;  #A是一个要被移动的数字

6. 右移运算     右移一位相当于//2

 形式: A >> n;#/A是一个要被移动的数字

成员检测:

in  检测一个数据是否在制定的容器当中

not in 检测一个数据是否不再制定的容器当中

 

lists = ['刘涛','zhaowei','linxinru']

result = 'ls' in lists

print (result)

#检测数据是否不在容易当中

list = {'11','22','33','44'}

result = 'ls' not in lists

print (result)

 

dict = {'11':'22','33':'44'}   ##成员检测对于字典而言 仅仅检测字典的目录而不是检测的值!

result = '22' in list

print (results)

 

#身份检测运算


is  检测两个变量的数据是否是同一个数据

is not  检测两个变量的数据是否不是同一个数据


'''

以下内容根据python版本的不同,结果可能有出入

整数:-5 ~ 正无穷  值相同id就相同

浮点数: 0 ~ 正无穷  值相同id就相同

布尔值:值相同id就相同

复数:都不同

字符串:只要内容相同id就相同

列表,元组,字典,集合 都不同

no1 = -5       no2 = -5

result = no1 is no2

print (result)

#以下写法  身份检测 ID永远相同

no1 = no2 = -100

#print (id(no1))

#print (id(no2))

result = no1 is no2

print (result)

运算优先级的问题

写程序遇到优先级问题可以使用()解决,更方便,也更易读

 

#类型检测的推荐方法

var = 10

#该方式仅适用于学习过程种的测试,代码开发种不要使用!

print(type(变量))

#isinstance () 检测数据是否是制定的某种数据类型

result = isinstance(变量,检测的类型)不要加''

print(result)   

#检测数据是否是整型或者浮点型

var=11

result = isinstance(vr,(int,float))

#result = isinstance(变量,(检测的类型,检测的类型))

print(result)

 

 

 










    





猜你喜欢

转载自blog.csdn.net/dqshjq/article/details/79542889