• 第003讲:小插曲之变量和字符串


    一 变量和字符串的概念

    1 变量

    • 定义:变量名相当于人的名字,在程序里面,它就是一个地址标识符;我们可以给变量赋值,即把值(或者数据)存储到变量(所代表的地址空间)中
    • 区别:python跟其它大部分计算机语言稍有不同,它不是把值存储在变量中,更像是把名字(变量)贴在值上面;
    •            所以有些python程序员会说:python没有变量,只有名字
    • 图解:https://www.jianshu.com/p/3289be65c76d
      • (1)C语言中变量的定义:
      •                                                    
      •          如上图所示,赋值b=a,就是新建一个盒子,然后把值赋值一份放过去,特点是:两个值之间完全独立。
      • (2)python语言中变量的定义:
      •         python的变量就是贴标签!(python里面不是什么都是对象么,我们的变量名就是一个标签而已,类属性啥的都在变量自己内部保存着呢!)
      •        上面的a=2之后,1就没有归属了,就无法调用了,python的基于引用的内存管理器很快就会把这个对象的内存给清理掉的
    •  扩展:http://c.biancheng.net/view/2171.html
      • (1)python是弱类型的语言
      •          在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C语言、C++、Java 是强类型语言的代表
      •          和强类型语言相对应的是弱类型语言,Python、JavaScriptPHP 等脚本语言一般都是弱类型的。
      • (2)弱类型语言的特点
      •          变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
      •          变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。
      •          注意:弱类型并不等于没有类型!弱类型是说在书写代码时不用刻意关注类型,但是在编程语言的内部仍然是有类型的。我们可以使用 type() 内置函数来检测某个变量或者表达式的类型

     2 变量的命名规则:https://blog.csdn.net/weixin_42711549/article/details/82147012

    • 命名的规范性:
      • 变量名可以包括字母、数字、下划线,但是数字不能做为开头。例如:name1是合法变量名,而1name就不可以。
      • 系统关键字不能做变量名使用
      • 除了下划线之外,其它符号不能做为变量名使用
      • Python的变量名是区分大小写的
    • 驼峰命名法:
      • 大驼峰:每一个单词的首字母都大写       FirstName LastName
      • 小驼峰:第一个单词以小写字母开始,后续单词的首字母大写     firstName lastName
    • 拓展:https://www.jianshu.com/p/9270aa5468c0
    • 标识符:
      • 标识符就是在程序中定义的变量名函数名
      • 标识符可以由字母下划线数字组成。
      • 标识符不能以数字开头。
      • 标识符不能与关键字重名。
      • 标识符区分大小写
    • 关键字:
      • 关键字就是在Python内部已经使用的标识符
      • 查看Python关键字:
    • 注意:python3可以用汉字命名

    3 字符串

    • 创建:用一对单引号或者双引号就可以创建一个字符串
    • 转义字符:https://www.runoob.com/python/python-strings.html
    • 原始字符串:在平时的字符串前面加一个r即可,转义字符反斜杠过多的时候,用原始字符串即可输出特殊字符
      • 例如:   
      • 注意:原始字符串在最后不能加反斜杠,例如: str = r"C: ow",非要加的话见课后练习题
      • 执行结果:>>> str = r"C: ow"
      •                   File "<stdin>", line 1
      •                   str = r"C: ow"
      •                                          ^
      •                    SyntaxError: EOL while scanning string literal
    • 长字符串:可以使用三重引号定义字符串,即三个成对的双引号或者三个成对的单引号

     二 课后题答案

    (一)测试题部分

    0. 以下哪个变量的命名不正确?为什么? (A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM

       (C)选项不正确,因为 Python 中的变量名不能以数字开头。

     

    1. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

    >>>myteacher = '小甲鱼'
    >>>yourteacher = myteacher
    >>>yourteacher = '黑夜'
    >>>print(myteacher)

       会打印:小甲鱼

     

    2. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

    >>> myteacher = '小甲鱼'
    >>> yourteacher = myteacher
    >>> myteacher = '黑夜'
    >>> print(yourteacher)

       会打印:小甲鱼

     

    3. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

    >>>first = 520
    >>>second = '520'
    >>>first = second
    >>>print(first)

        会打印:520,注:这里没有单引号括起来,但是他是一个字符串,因为使用 print() 打印,所以不包含单引号。可以试试直接>>>first,它是一个字符串的。

     

    4. 除了使用饭斜杠()进行字符转义,还有什么方法可以打印:Let's go! 这个字符串?

        >>>"Let's go!"


    5. 如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

        >>>str = r'C:Program FilesFishCGood''\'

    6. 在这一讲中,我们说变量的命名需要注意一些地方,但小甲鱼在举例的时候貌似却干了点儿“失误”的事儿,你能看得出小甲鱼例子中哪里有问题吗?   
     
    在例子中小甲鱼起了个 str 名字的变量,但事实上我们发现,str 的颜色跟普通变量貌似不同?没错,str() 和 print() 都是内置函数,但 Python 貌似不介意我们对内置函数进行赋值操作,所以这点我们以后就要注意啦,否则可能会出现以下的 BUG:

    1. >>> print = 1
    2. >>> print("I love FishC")
    3. Traceback (most recent call last):
    4.   File "<pyshell#37>", line 1, in <module>
    5.     print("I love FishC")
    6. TypeError: 'int' object is not callable

     

    (二)动动手答案:

    0. 还记得我们第一讲的动动手的题目吗?这一次要求使用变量,计算一年有多少秒?
    1. DaysPerYear = 365
    2. HoursPerDay = 24
    3. MinutesPerHour = 60
    4. SecondsPerMinute = 60
    5. result = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
    6. print(result)
  • 相关阅读:
    CreateProcess逆向分析3环用户层逆向分析(一)
    CVE20112005(MS11080)漏洞分析
    vmware安装Windows 11虚拟机
    SAP SD 常用配置事物代码
    Java学习笔记02面向对象
    Java学习笔记01基本语法
    Java学习笔记03枚举和注解
    openssl3.0 加密算法库编程精要 06 详解 EVP API 公开密钥密码算法 非对称加密、签名
    零基础实现微信小程序云开发的无人机管理系统项目实例系列教程简述(一)
    chrome安装vuedevtools遇到的常见问题及解决方法
  • 原文地址:https://www.cnblogs.com/luoxun/p/13195064.html
Copyright © 2020-2023  润新知