python入门学习

来自egon的学习套路

在每次遇到一个新事物的时候,要学三步:

  1. xxx是什么?

  2. 为什么要有xxx?

    ​ 大前提:python中所有出现的语法都是为了让计算机能够具有人的某一个功能

  3. 如何用xxx?

1变量

学习的时候灵魂三问什么事,为什么要有,如何用

1.1什么是变量?

变量就是记录可以变化的量,比如人的年龄,性别

1.2为什么要有变量?

为了让计算机可以想人一样去记忆事物,该事物的状态是会发生变化的

程序的执行就是一系列状态的变化

1.3如何用变量?

原则:先定义,后引用

变量有三大组成部分:变量名,赋值符号,变量值

1.变量名:是指向等号右侧值的内存地址的,用来访问等号右侧的值

变量名的命名规则:

原则:变量名的命名应该见名知意

命名规范 :

  1. 变量名只能是 字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 关键字不能声明为变量名

命名风格:

  1. 驼峰体:AgeOfHuang = 18

  2. 纯小写下划线(推荐):age_of_huang = 18

2.赋值符号:讲变量值的内存地址帮顶给变量名

3.变量值:代表记录事物的状态

变量值的三个重要特征:

  1. id:反映的是变量值的内存地址,内存地址不同id则不同
  2. type:不同类型的值用来记录不同状态
  3. value:值本身

变量的比较:身份运算符is与值比较符==

is:比较左右两个变量的id是否相等

==:比较左右两个变量的值是否相等

了解:小整数池【-5,256】是python解释器对内存的优化(在pycharm内的整数池范围更大)

在这之间相同的值的变量指向的是同一内存地址,如果超出了这个范围会重新开辟一个内存地址

name = 'hz' #定义name这个变量的值为hz
print(name) #引用name变量打印它
print(id(name))
print(type(name))

这里引入一个概念,内存管理:垃圾回收机制

垃圾:当一个变量值被绑定的变量名个数为0时,该变量值无法被访问到,称之为垃圾

被绑定的变量名个数称之为引用计数,下面有一段代码演示垃圾的产生

x = 10 #10的引用计数为1
y = x #将x的内存地址指向y,此时10的引用计数为2
z = x #10的引用计数为3
del x #解除变量x和值10的绑定关系,10的引用计数为2
del y #解除变量x和值10的绑定关系,10的引用计数为1
z = 12345 #此时z的内存地址发生了改变,10的引用计数为0,值10在这一刻变成了无法访问的垃圾

ps:常量:不变的量

python语法中没有常量的概念,但是在程序开发过程中会涉及到所以大家约定俗成了一种常量的命名规范

AGE_OF_HZ=18 #变量名全为大写默认为常量

2.基本数据类型

2.1数字类型

2.1.1整形int

作用:用于记录整数的数据,如年龄,身份证号,个数等

age = 18

2.1.2浮点型float

作用:记录有小数点的数据,例如身高,体重等

height = 1.81

2.1.3数字类型的运算

数学运算

a = 1
b = 2
a+b
>>>3

比较大小

a = 1
b = 2
a>b
>>>false

2.2字符串类型str

作用:记录描述性质的状态,名字,一段话

info = '李肖彤大美女'

字符串可以相加或者和数字相乘

a = '李肖彤'
b = '是'
c = '大美女'
a+b+c
>>>'李肖彤是大美女'
a = 10
b = '*'
a*b
>>>********** #字符串嵌套
print("ny name is 'huangzhao'")
#注意:外层用双引号时,内层用单引号,反之亦然

2.3列表list

作用:当需要多个数据的记录和读取时,会比数字和字符串来记录更加方便

stu_name = ['a','b','c']
stu_name[0] # 索引取值从0开始
>>>'a' #列表的嵌套
stu_info = [['a',1],['b',2],['c',3]]
stu_info[1][0]
>>>'b'

2.4字典dict

作用:列表的取值可以通过索引取值,但是当数据量多时,索引取值会很麻烦,这里就引入了字典的概念,就像我们查英语单词一样,如果记住每个单词的意思页数,就很麻烦。但是如果我们可以通过他的key索引会方便很多。

#字典类型是通过key来对应值,key通常是对值的描述,一般是字符串
stu_info={
'name':'hz',
'age':'20',
'height':'181'
}
stu_info['name']
>>>hz
#字典的嵌套
stu=[{'name':'hz','age':18},
{'name':'xt','age':18},
{'name':'xq','age':18}
]
stu[0]['name']
>>>hz

2.5布尔值

作用:用于记录真假的两种状态

is_ok = True
is_ok = False
#通常当做判断的条件

day04 python入门(变量,基本数据类型)的更多相关文章

  1. python入门-变量与数据类型

    1.命名规则 变量名只能包含字母.数字和下划线.但不能以数字打头. 变量名不能包含空格 不能与关键字冲突 变量名应尽量简短且具有描述性 2.字符串 python中引号括起的内容,其中引号可以为单引号或 ...

  2. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

  3. python中变量的数据类型总结

    1.变量的数据类型,分为数值型和非数值型 数值型: int(整型) float(浮点型) bool (布尔型,只有True和Flase) compex(复数型, 用于科学计算) 非数值型: str(字 ...

  4. Python 基础 变量和数据类型

    python 数据类型 一,整数,可以出来任意大小的整数. 如 1, 100, -8080,0 等等. 二,浮点数,浮点数也可以被成为小数. 三,字符串,字符串是以'' 或"". ...

  5. python之变量的数据类型(1)int 、bool 、str 及for循环运用

    一.变量的数据类型(1) 1.int 类型 int类型是整数,常用的有bit_length() 方法 用来返回一个数的二进制长度 2.bool类型 布尔型只有两个值 True,False 有关类型转换 ...

  6. python之变量的数据类型(3)dict 及解构简单介绍

    一.变量的数据类型(3) 1. dict 字典dict 用{}来表示 键值对数据 {key:value} 唯一性 键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键 值 没有任何限制 2.增删 ...

  7. python之变量的数据类型(2)list 、 tuple 及range用法

    一.变量的数据类型(2) 1.list 类型 列表的特点: 列表是一个可变的数据类型 列表由[]来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象. 列表可以装大量的数据 列表的索引 ...

  8. Python入门 .变量 常量 基础数据类型 用户输入 流程控制语句 小练习题

    # 2.name = input(“>>>”)通过代码来验证name变量是什么数据类型?--str name = input(">>>") pr ...

  9. python入门-变量和简单数据类型

    1 title() 是以首字母大写的方式显示每个单词 lower() 字母小写 upper() 字母大写 2 python使用+号来合并字符串 字符串中使用制表符用\t 字符串中使用换行符\n 用rs ...

随机推荐

  1. 轻松解决Github连接缓慢、图裂问题

    1 简介 gayhub(误)github作为全世界最大的开源代码库以及版本控制系统,是用来托管项目以及学习开源技术非常好的平台,是我心中最好的学习网站,我们公众号的众多技术文章对应的数据和代码也都一直 ...

  2. HDU - 3591 The trouble of Xiaoqian 题解

    题目大意 有 \(N\) 种不同面值的硬币,分别给出每种硬币的面值 \(v_i\) 和数量 \(c_i\).同时,售货员每种硬币数量都是无限的,用来找零. 要买价格为 \(T\) 的商品,求在交易中最 ...

  3. 除了FastJson,你也应该了解一下Jackson(二)

    概览 上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性.而本 ...

  4. 滴滴HBase大版本滚动升级之旅

    桔妹导读:滴滴HBase团队日前完成了0.98版本 -> 1.4.8版本滚动升级,用户无感知.新版本为我们带来了丰富的新特性,在性能.稳定性与易用性方便也均有很大提升.我们将整个升级过程中面临的 ...

  5. Prometheus监控Docker Swarm集群(一)

    Prometheus监控Docker Swarm集群(一) cAdvisor简介 为了解决容器的监控问题,Google开发了一款容器监控工具cAdvisor(Container Advisor),它为 ...

  6. office2016专业增强版激活密匙 (shell激活版)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_42642945/article/d ...

  7. Java复习目录

    还是寒假用了十多天的时间在b站把基础部分学习完了,现在刚开学开始上Java课,以博客的方式复习前面学习的内容. 总结: ①吸取前面MySQL学习的教训,每天固定学习的内容,学习效果很有提升,但临近开学 ...

  8. Visible Lattice Points(规律题)【数学规律】

    Visible Lattice Points 题目链接(点击) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9031   ...

  9. JVM进阶之路(一)

    JVM是Java程序运行的基本,了解Java程序的运行原理绝对有必要了解JVM的内容,JVM的内容其实很多,而且版本不同,其中的内容也很多不同,接下来就通过几篇文章来慢慢讲述JVM的内容. 一.Jvm ...

  10. 将反向传播讲解的深入透彻的神一样的文章(numpy实现人工神经网络)

    为了完成机器学习课的项目,规定不许调tensorflow,pytorch这些包.可是要手工实现一个可训练的神经网络是非常困难的一件事,难点无他,就在于反向传播的实现.这不,我在网上发现了这篇文章.怎么 ...