首页 > 编程语言 > 详细

Python基础知识

时间:2020-03-20 13:29:09      阅读:45      评论:0      收藏:0      [点我收藏+]

第一篇博客:Python基础

变量部分——

变量定义:可以变化的量,指事物的状态。

原则:先定义,后使用。

name = "Rachel"

print(name)

 

垃圾回收机制:

作用:在程序运行过程中,会申请大量的内存空间,若长时间不清理,会影响程序运行效率,垃圾回收机制是pyhon自带的程序。变量名存在堆区,内存地址存在栈区,他们是一种对应关系。

1,引用计数:变量被引用的次数,包括直接引用和间接引用。

2,标记清除:因为有循环引用的存在,会导致内存泄漏的问题。若堆区的值只剩下间接引用,则会被标记为垃圾

3,分代回收:基于引用计数的回收机制,每次回收内存,都需要把所有对象的引用计数都扫描一遍,这是非常耗时的,于是引用分代回收来提高效率,分代回收是以空间换时间的。在多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,会降低扫描频率。

 变量命名规则:

1、只能是字母,下划线,数字的组合。

2、不能以数字开头。

3、不能使用关键字。

4、最好简洁,有意义,避免用中文。

  两种命名风格:

1、纯小写加下划线。(推荐使用)age_of_Bob = 23

2、驼峰体。AgeOfBob = 23

变量值的三个重要特征

1、id:反映变量值的内存地址,id不同则内存地址不同。  print(id(name))

2、type:不同类型的值用来表示记录不同的状态。  print(type(name))

3、value:值本身。  print(name)

is和==

is: 表示两边的id是否相同。若a is b  ,得到True, 则必有a == b.

==表示两边的值是否相同。若a == b,得到True,则a和b的id可能相同,也可能不同。

若给变量做赋值操作,则id相同

小整数池

范围:-5至256

在Python解释器启动的时候,就设置好了小整数池的范围。

基本数据类型

整型int:表示整数,如年龄,身份证号。age = 16 print(type(age))——int

浮点型float:表示带小数点的数字,如工资。

字符串str:记录描述事物的状态,名字,一段话。字符串之间相加效率低。

列表:存多个值,索引对应值。l = ["张三",23]

字典: key对应值,索引对应key, key 必须是不可变类型。字典中通过key 来取值。d = {name:"张三",age:23}

布尔类型:两种状态,True和False(0和None和空值都是Flase)

与用户交互

用户输入:input 语法会把用户的输入内容存成字符串类型。username = input("请输入你的账号")

在Python2中:raw_input()的语法与 Python3中的一模一样,Python2中的input()方法规定输入什么类型的数据,就存成什么类型。

用户格式化输出:

1、%(传的值必须与需要的值个数相等,不能多也不能少。兼容性好)

res = "my name is %s,my age is %d" %("Rachel",20)

res = "my name is %(name)s,my age is %(age)d" %("name":"Rachel","age":20)  (这一种方法对传值的顺序没有要求)

 2、.format方法  (从2.6引用)

res = "my name is{},my age is{}.format("Rachel",20)

res = "my name is{0}{1},my age is {2}{2}{2}".format("Rachel","Nabil",20)   (按照标记索引顺序传多个值)

res = "my name is{name},my age is {age}".format("age":20,"name":"Rachel")    (对传值顺序没有要求)

3、f (从3.5引用)

x = input("请输入你的名字")
y = input("请输入你的年龄")
res = f"我叫{x},年龄{y}"
print(res)
扩展:
res = f"{10+3}"
print(res) ——13

基本运算符 

 1、算数运算符(+-*/)

print(10/3) 有小数

print(10//3)只保留整数部分

print(10%3)  取模,取余数

print(10**3)  取10的三次方

2、比较运算符

判断> < = True Flase ==  !=等

3、赋值运算符

变量赋值:=

增量赋值:age += 1、age *=3、age/=3、age**=3

链式赋值:x = y = z = 10

交叉赋值:m =10 n =20   m,n = n,m

解压赋值:l =[22,33,44,55]

                a,b,c,d = l   (变量名必须一一对应,不能多不能少)

取前两个变量:a,b,*_ = l

取后两个变量:*_,a,b = l

无法取中间的值,解压字典默认解压出来的是key

4、逻辑运算符

优先级:not>and>or

5、成员运算符

print("be" in "beautiful")——True
*在字典中判断的是key

 6、身份运算符

is判断id是否相等

深浅copy

浅拷贝:在复制时一般只复制第一层数据的内存地址,浅拷贝对于除开第一层的数据分开改写无法实现,如下代码,若改写其中一个列表里面第二层数据,则两个列表的第二层数据都会改变。

l = [11,22,[33,44]]
l1 = l.copy()
print(id(l),id(l1)) #1855884452552 1855885924936
l1[2][0] = 55
print(l,l1) #[11, 22, [55, 44]] [11, 22, [55, 44]]

深拷贝:在复制时将每一层数据的内存地址都拷贝过来,所以在改写的时候可以实现两个列表的单独改写。

import copy
l = [11,22,[33,44]]
l1 = copy.deepcopy(l)
print(id(l),id(l1)) #2185047793416 2185047792200
l1[2][0] = 55
print(l,l1) #[11, 22, [33, 44]] [11, 22, [55, 44]]

 

Python基础知识

原文:https://www.cnblogs.com/fdsimin/p/12510662.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!