python语法入门
程序=数据+功能
我们学习编程语言的目的是为了控制计算机能够像人一样去做事
所以说,编程语言中出现的所有的语法都是为了控制计算机能够像人一样去做xxx事
一、注释:
1.多行注释
加在哪?
通常加在整个文件的开头,用于对文件进行整体性的说明
可以有多少个?
所以说通常一个文件只有一个多行注释
“”“
注释1
注释2
注释3
"""
2. # 单行注释
print('hello') # 单行注释,PEP8规范 通常写在代码的上方或者后面
# 暂时注释掉不想运行的代码,被注释掉的代码不会运行
二、变量
1.什么是变量?
量指的是事物的状态。
变指的是事物的状态是可以发生变化的。
变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
变量是一种机制,什么机制呢?
变量是一种存取内存的机制。 这种机制/语法可以把事物的状态记录下来,并且以后可以取出来改变。
2.为什么要用变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的。
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化。
3.怎么用变量?
3.1 变量的基本使用原则
原则:先定义,后引用
定义的语法:变量名 = 变量值 name="egon"
引用变量的语法: print(name)
补充:程序出错有两种
( 1)、语法错误(SyntaxError):不允许犯语法错误,必须在程序运行前改正====>直接报错
prit("hello1")
print("hello2")
print("hello3"
print("hello4")
print("hello5")
(2)、逻辑错误:逻辑上的错误只能在程序运行前被python解释器发现,应该尽量把逻辑写到完美。====>运行前2行,第三行报错
print("hello1")
print("hello2")
print(age)
age = 18
print("hello4")
print("hello5")
3.2、变量的定义由三大部分组成
变量名:用来访问变量值
赋值符号:将变量值的内存地址绑定给变量名
变量值:就是我们记录的事物的状态,也就是存到内存中的数据 ps: age=18
print(age)
补充:
左值:变量名如果在等号的左边,是存值
右值:变量名不在等号左边,是取值
![在这里插入图片描述](https://img-blog.csdnimg.cn/95796cb27940493eaaaf6d2f211a0bd9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTcxNDE5OA==,size_16,color_FFFFFF,t_70) 3.3变量名详解:
3.3.1大原则:见名知意
3.3.2变量名的命名规范
1. 变量名只能是 字母、数字或下划线的任意组合
2. 变量名的第一个字符不能是数字
3. 不能使用python关键字,常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
3.3.3变量名的命名风格
风格一:驼峰体
AgeOfTony = 56
NumberOfStudents = 80
风格二:纯小写字母加下划线(在python中,变量名的命名推荐该方式)
age_of_tony = 56
number_of_students = 80
补充: age 不加引号是一个变量名,代表的是取值行为
"age" 加上引号是一种变量值
3.3.4变量值的三大特性:
****id身份****
x = age
print(id(age))
print(id(x))
****type类型****
print(type(age))
value
反应的是变量在内存中的唯一编号,内存地址不同id肯定不同
三、常量
不能被改变的量
AGE = 18
AGE = 19
print(AGE)
变量值详解:变量值都有哪些常用类型,每一种类型都可以用来记录什么样的状态----》基本数据类型
四、基本数据类型
1.int整型:记录年龄、等级、号码等整数相关
age=18
2.float浮点型:记录薪资、身高、体重等小数
salary=3.1
3.str字符串类型:记录名字、性别、一段话等描述性质的内容
定义:在引号内包含一串字符,引号可以是''、""、""" """、''' '''
name="tony"
msg="两只黄鹂鸣翠柳
一行白鹭上青天"
print(type(name))
print(type(msg))
4.list列表型:按照位置存放多个任意类型的元素
0 1 2 3
l = [111,3.333,"aaaa",[666,777]]
print(l[1])
print(l[3])
print(l[-1][0])
hobbies = "read music movie"
hobbies = ["read", "music", "movie"]
print(hobbies[1])
练习:取出第二名学生的第二个爱好
students_info = [['egon', 18, ['play', 'music']], ['alex', 18, ['play', 'sleep']]]
print(students_info[1][2][1])
5.dict字典型:按照key:value的形式存放多个任意类型的value
定义:在{}内用逗号分割开多个key:value,其中value可以是任意类型,而key通常是字符串类型
info = {
"name": 'egon',
"age": 18,
"gender": 'male',
"level": 20,
"salary": 10
}
print(info["age"])
不好:
names = {
"name1":"张三",
"name2":"李四",
"name3":"往屋内”
}
推荐: names = ["张三","李四","往屋内"]
info = {
"name": 'egon',
"age": 18,
"gender": 'male',
}
info = ['egon',18,'male']
print(info['age'])
练习:所有同学的信息存下来
students_info = [
{"name": 'egon', 'age': 18, 'hobbies': ["read", 'music']},
{"name": 'tom', 'age': 19, 'hobbies': ["play", 'music', 'movie']},
]
print(students_info[1]['hobbies'][-1])
6、布尔类型:True,False,用来记录真假两种状态
通常不是直接定义的,而是通过比较运算得到的
tag = True
print(10 > 3)
print("egon" == "egon")
用途:但凡结果为布尔值的操作,都是要当做条件用
ps:布尔值分为显式与隐式两种
(1)显式的布尔值:结果明确为True和False的
tag = True
print(10 > 3)
print("egon" == "egon")
if 10 < 3:
print('ok')
else:
print('no')
(2)隐式的布尔值:结果看上去并不是布尔值,但是python解释器在背后会将其解析为True或False
所有的数据当条件都是隐式的布尔值,只需要记住0、None,空 对应的隐式的布尔值为False,其余都为tRUE
if "":
print('ok')
else:
print('no')
x = len("abcdef")
print(x)
x = print("hello")
print(x)
五、内存管理机制—— 垃圾回收机制GC
1.什么是垃圾回收机制
Python解释器自带一种机,专门用来回收不可用的变量值所占用的内存空间
2.为什么要用垃圾回收机制
程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的垃圾回收机制把程序员从繁杂的内存管理中解放出来。
3. 引用计数
(1)引用计数增加
x=18 18的引用计数次数为1
y=x 18的引用计数次数为2
l1=[111,x] 18的引用计数次数为3
print(id(x))
print(id(y))
print(id(l[1]))
(2) 引用计数减少
del x # 值18的引用计数为2
y = 100 # 值18的引用计数为1
del l[1] # 值18的应用计数为0
4.分代回收:为了解决引用计数的效率问题
问题:个别垃圾有可能得不到及时的清理
5. 标记/清除:为了解决循环引用带来的内存泄露问题
核心:一个变量值如果没有任意一条从栈区到自己的引用,就会被标记下来,方便后续清除。
lll = [66,77] (见右图)
l1 = [111]
l2 = [222]
l2.append(l1)
l1.append(l2)
print(l1) # l1 = [111的内存地址,l2的内存地址]
print(l2) # l2 = [222的内存地址,l1的内存地址」
print(l1[1][1]) (见下图)
del l1
print(l2[1][0])
del l2
3. 小整数池[-5,256]
从python解释器启动的那一刻开始,就会在内存中事先申请一系列内存空间存放好常用的整数二 小整数池
x = 100000
y = 100000
x = "abc"
y = "abc"
print(id(x))
print(id(y))
python语法入门的更多相关文章
- python语法入门之流程控制
python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...
- 03.python语法入门--注释、变量
注释 """多行注释加在整个py文件的开头用来对该py文件进行一个整体性的说明通常一个py中只有一个多行注释"""# 这是一行贼溜的代码p ...
- 07.python语法入门--流程控制
分支结构 什么是分支结构 为什么要用分支结构 如何使用分支结构 if语法 if应用案例 循环结构 什么是循环结构 为什么要用循环结构 如何使用循环结构 while循环语法 while循环应用案例 fo ...
- 002 python语法入门
一:基本数据类型知识点 1.基本数据类型 Number 数字 String 字符串 Bool 布尔 List 列表 Tuple 元组 Set 集合 Dictionary字典 2.分类 )标准的pyth ...
- Python语法入门02
引子 上一篇我们主要了解到了python这门编程语言,今天来说一下关于用户交互,数据类型和运算符方面的学习内容 用户交互 什么是用户交互? 用户交互就是人往计算机里输入数据(input),计算机输出结 ...
- python语法入门之变量
目录 一.变量 1.1 什么是变量 1.2 怎么使用变量 1.3 变量名的命名规范 1.4 变量名的命名风格 1.5 变量的三大特征 2.常量 一.变量 1.1 什么是变量 # 变量就是可以变化的量, ...
- 05.python语法入门--垃圾回收机制
# (1)垃圾回收机制GC# 引用计数# x = 10 # 值10引用计数为1# y = x # 值10引用计数为2## y = 1000 # 值10引用计数减少为1# del x # 值 ...
- 04.python语法入门--基本数据类型
# python是一门解释型的.强类型的.动态语言# 一:数字类型# 1.1 整型int:记录人的年龄.等级.号码.个数# age = 18# print(type(age))# 1.2 浮点数 ...
- 06.python语法入门--与用户交互、运算符
与用户交互 输入 input # python2与python3的区别 '''python3''' # 将获取到的用户输入赋值给变量名res res = input(' ...
随机推荐
- AcWing 1143. 联络员
Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联络(直 ...
- Https:SSL双向认证机制(理论知识)
1.基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容. 1.1.公钥密码体制(public-key cryptography) 公钥密码体制分为三个部分,公钥.私钥.加密解密算法,它 ...
- Zookeeper:Windows下Zookeeper启动zkServer.cmd闪退问题
Zookeeper在Windows下启动只需要运行zkServer.cmd双击即可(需保证运行环境中正确安装了Java运行环境) 但是在有的时候会出现双击闪退的情况.针对闪退,可按照如下方法进行解决: ...
- centos下nodejs,npm的安装和nodejs的升级
安装: sudo yum install epel-release sudo yum install nodejs node -v yum install -y npm --enablerepo=ep ...
- java基础---设计模式(1)
出处:https://blog.csdn.net/zhangerqing/article/details/8194653 java的设计模式分为三大类 创建型模式: 工厂方法模式.抽象工厂模式.单例模 ...
- 使用Nginx将请求转发至Google Analytics实现后端数据统计
前言 Google Analytics 加载缓慢是本博客在国内访问缓慢的原因之一.虽然通过使用大公司的 ga.js 的 CDN ,可以很大程度上加快加载 ga.js 文件的速度( ga.js 的更新频 ...
- 深度学习之逻辑回归的实现 -- sigmoid
1 什么是逻辑回归 1.1逻辑回归与线性回归的区别: 线性回归预测的是一个连续的值,不论是单变量还是多变量(比如多层感知器),他都返回的是一个连续的值,放在图中就是条连续的曲线,他常用来表示的数学方法 ...
- final修饰符(2)
final局部变量 系统不会对局部变量进行初始化,局部变量必须又程序员显示初始化,因此使用final修饰局部变量,可以在声明时指定默认值,也可以在后面的代码中对该final变量赋初始值,但只能赋值一次 ...
- Hive——join的使用
Hive--join的使用 hive中常用的join有:inner join.left join .right join .full join.left semi join.cross join.mu ...
- git的一些常用基础命令
一些常用的git命令操作简单总结 记录常用的git命令,附带命令的简单使用说明 git区域分布 remote远程仓库 repository本地仓库 index暂存区 workspace工作区 stas ...