第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:\now\",非要加的话见课后练习题
    • 执行结果:>>> str = r"C:\now\"
    •                   File "<stdin>", line 1
    •                   str = r"C:\now\"
    •                                          ^
    •                    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 Files\FishC\Good''\\'

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)
posted @ 2020-06-26 15:04  洛兰123  阅读(248)  评论(0编辑  收藏  举报