程序=数据+功能
        我们学习编程语言的目的是为了控制计算机能够像人一样去做事
        所以说,编程语言中出现的所有的语法都是为了控制计算机能够像人一样去做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语法入门的更多相关文章

  1. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  2. 03.python语法入门--注释、变量

    注释 """多行注释加在整个py文件的开头用来对该py文件进行一个整体性的说明通常一个py中只有一个多行注释"""​# 这是一行贼溜的代码p ...

  3. 07.python语法入门--流程控制

    分支结构 什么是分支结构 为什么要用分支结构 如何使用分支结构 if语法 if应用案例 循环结构 什么是循环结构 为什么要用循环结构 如何使用循环结构 while循环语法 while循环应用案例 fo ...

  4. 002 python语法入门

    一:基本数据类型知识点 1.基本数据类型 Number 数字 String 字符串 Bool 布尔 List 列表 Tuple 元组 Set 集合 Dictionary字典 2.分类 )标准的pyth ...

  5. Python语法入门02

    引子 上一篇我们主要了解到了python这门编程语言,今天来说一下关于用户交互,数据类型和运算符方面的学习内容 用户交互 什么是用户交互? 用户交互就是人往计算机里输入数据(input),计算机输出结 ...

  6. python语法入门之变量

    目录 一.变量 1.1 什么是变量 1.2 怎么使用变量 1.3 变量名的命名规范 1.4 变量名的命名风格 1.5 变量的三大特征 2.常量 一.变量 1.1 什么是变量 # 变量就是可以变化的量, ...

  7. 05.python语法入门--垃圾回收机制

    # (1)垃圾回收机制GC# 引用计数# x = 10 # 值10引用计数为1# y = x   # 值10引用计数为2## y = 1000 # 值10引用计数减少为1# del x     # 值 ...

  8. 04.python语法入门--基本数据类型

    # python是一门解释型的.强类型的.动态语言​​# 一:数字类型# 1.1 整型int:记录人的年龄.等级.号码.个数# age = 18# print(type(age))​# 1.2 浮点数 ...

  9. 06.python语法入门--与用户交互、运算符

    与用户交互 输入 input    # python2与python3的区别        '''python3'''    # 将获取到的用户输入赋值给变量名res    res = input(' ...

随机推荐

  1. 40、Linux文件误删除恢复操作

    rm -rf / #此方法删除不了/目录: rm -rf /* #此方法可以删除/目录下的所有内容,禁止使用: 40.1.前言: 作为一个多用户.多任务的操作系统,Linux下的文件一旦被删除,是难以 ...

  2. 2018-10-14普及模拟赛」Hash 键值 (hash)

    今天,带大家看一看一道思维题... Hash 键值 (hash) 题目描述 Marser沉迷hash无法自拔,然而他发现自己记不住hash键值了-- Marser使用的hash函数是一个单纯的取模运算 ...

  3. docker安装和配置nginx

    配置nginx docker配置nginx 本机ip是192.168.0.200 docker pull nginx 配置nginx主机 vi /root/docker/nginx/nginx01.c ...

  4. Spring:Spring-IOC简介

    想要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle ). 什么是依 ...

  5. docker进入容器所在虚拟机的指令

    sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9 在拿到该进程PID之后我们就可以使用nsenter命令访问该容器了. $ sudo nsenter ...

  6. IntelliJ idea 中新建Spring项目 并部署到tomcat

    步骤还不熟悉  看的别人的文章做下去的 :https://www.cnblogs.com/yangyquin/p/5285272.html 一:新建Spring项目: 1. 2. 3. 4.然后在We ...

  7. Sql Server(3)运算符的使用

    where 订货日期 between '2017/10/24' and '2017/10/30'  小的写在前面,大的后面,不可以写反 一:运算符的使用 T-SQL的运算符应用指派运算符算术运算符比较 ...

  8. 去抖动 debounce

    最近才发现 debounce 在 减少DOM操作及资源加载方面得重要性,遂写个博客记录一下 /** * @param {Function} func 要执行的函数 * @param {number} ...

  9. 2021最新WordPress安装教程(三):安装WordPress详细步骤

    前面已经通过< 2021最新WordPress安装教程(一):Centos7安装Apache>和< 2021最新WordPress安装教程(二):配置PHP和MySQL>两篇文 ...

  10. 【spring源码系列】之【Bean的初始化】

    只要不放弃,希望迟早都会到来! 1. Bean的初始化 如果把bean的生命周期看作一个婴儿诞生过程的,那么创建实例相当于婴儿从母体出来,一丝不挂光秃秃:属性赋值相当于给宝宝的头带帽子,上身穿衣服.下 ...