目录
1.1 在交互式环境中输入表达式
(注:两个来自于不同的python编程平台,前者来自于python的IDLE,后者来自于pycharm。《python编程快速上手》本书所用的是IDLE,使用程序与本人冲突,因此以后都将使用pycharm作为代码展示,不再使用IDLE。)
在python中,2+2被认为是表达式,同样2这种没有操作符的单个值也是表达式,单个值的求值就是自身。如2求值为2。
从本表可以看出来,**相当于数学中的^符号,优先级最高;相反,加号和减号的等级最低。和数学一样,如果想要加减法先算的话,就要对表达式进行加括号,如图下最后一个例子所示:
而对于复杂的程序而言,python对每个复杂的式子转变为单个值,方便运行。这也是编程的一个思想,可以将很复杂的程序拆分开来,变成简单程序,但是缺点就是占用巨大空间,导致运行时间长,所以在编写代码时,需要注意需不需要进行化简代码。
1.2 数据类型
表1-2显示了python最常见的数据类型,而字符串中不含有字符,则被称为“空字符串”或“空串”。若出现错误信息SyntaxError:EOL while scanning string literal 或 SyntaxError:unterminated string literal,则可能是忘记了字符串末尾的单引号。
1.3 字符串的连接和复制
一般来说,连接用“+”号,复制用“*”号。
如图所示,两个字符串用加号相连表示字符串连接,而输出结果即为两个字符串首尾相接的结果。
而“+”号不能用于字符串与整数数字之间。错误信息TypeError:can only concatenate str (not "int") to str。这句错误信息表示“+”号只能允许字符串和字符串之间,而不能是整数和字符串之间,“int”代表整数,“str”代表字符串。
如图所示,“*”号为复制,是字符串和整数的组合,前者为需要复制的文本,后者为需要复制的次数。例如,图中的被复制字符串为4个a,次数为5,输出结果为20个a。
此图和上一张图唯一的区别在于次数的格式问题。根据1.2所知,5属于int类型,而5.0是小数,属于浮点数,即float类型。错误信息TypeError:can't multiply sequence by non-int of type 'float'表示不能接受浮点数在此结构中,而5.0正是float类型,所以会出现此错误信息。将5.0改成5即可消除错误。
同样,“*”号也不能连接两个字符串,因为字符串无法表示复制次数,会出现错误信息TypeError:can't multiply sequence by non-int of type 'str',表示不接受两个字符串信息,演示过程省略。
1.4 变量
1.4.1 赋值语句
代码spam=12即为赋值语句,为“令spam等于12”。因此spam已经有了数值为12,可以让spam代替12进行数学运算,而spam就是“变量”。
第一次对变量进行赋值称为“初始化”,而以后对变量重新赋值则称为“覆写”,即将该变量之前的数据进行覆盖,重新给予一个数值,如下图。
代码进行覆写之后,变量spam变成了新的数据,即为34。
1.4.2 变量命名
python变量名命名规则大致由下图所示。
根据上图所示,可以得出三条命名规则:
1.只能是一个词,不能出现空格。
2.只能包含字母、数字和下划线(_)字符。
3.不能以数字开头。
1.5 基础功能函数介绍
如图所示,以下6个基础用法或函数:
图一
1.5.1 注释
图一中的序号一代码表示注释。在代码前加上“#”号,即表示此行代码不运行。可以用作代码解释和代码补充。
1.5.2 print()输出函数
图一中的序号二代码含有函数,print()函数,是python中的输出函数,任何形式的数据想要通过结果表现出来,都需要加print()函数。图中共输出了两行文字,“Hello,world!”和“What is your name?”。如果想要输出一段文字,需要将这段文字用单引号引起,放入print()函数中;如果想要输出一个变量的值,直接将变量名加入print()函数中即可。运行结果如下:
1.5.3 input()输入函数
有输出就会有输入,而input()函数与print()函数相呼应,而input函数的格式相对简单,变量名 = input()或对输入的数据类型有要求,则为变量名 = int(input())等,依此类推。
1.5.4 连贯输出
图一中的序号四则是综合了print函数和字符串的连接。input()函数默认输出的数据类型为字符串,而两个字符串类型符合用“+”号进行连接的条件。运行结果如下:
图中绿色字体即为输入字体,运行结果正确。
1.5.5 len()长度函数
图中我所输入的变量name的值为dyy,所以经过len函数的长度计算,得出dyy的长度为3。其他例子如下图:
第二个例子是一段话,这句话中含有7个单词加空格加上一个句号。不论len函数中的每一个单位是不是含有内容,如字母‘空格和符号,都会被记为一个长度。因此,本句话共含有39个字母,6个空格和1个句号,共计46个长度。若len函数内没有任何内容(包括空格),则长度为0。
1.5.6 str()、int()和float()函数
这三个函数都是数据类型转变函数,可以强制将数据类型进行转变。如下:
如上图所示,int()函数可以将浮点数转变为整数型;float()函数可以将整数型转变为浮点数,提高精确度;str()函数可以将整数型和浮点数转变为字符串,即为数据加上单引号。此操作在运算方面十分有用。
例如下图,
原先,“+”号是不能用在这种情况下的。但是str()函数将29转变为了字符串,而非整数型,所以此处符合字符串连接的条件,可以进行连接。若将str()去掉,则出现下述情况:
出现之前整数与字符串连接时所出现的错误信息。
另外,在进行运算时,需要特别注意input()函数默认输出字符串类型,可能会导致出现错误。所以,在进行运算操作之前,需要将input()强制转变为整数型,即int(input())。并且int()及float()函数不能对已知字符串单位进行转变,如下图:
而原图一中的代码程序,str(int(myAge)) 则是先对myAge变量进行取整,再对整数型进行转变,成为字符串,最后进行字符串连接,print()函数输出结果。
1.6 小结
本章主要介绍了几种操作符及其优先级,并介绍了三种数据类型。而后对集中python最常见的几种函数进行说明,即print()、input()、len()和三种数据类型转变的函数str()、int()、float(),解释了使用时的注意点。
1.7 课后习题选讲
1.7.1
答:操作符是+、−、*和/。值是'hello'、−88.8 和 5。
1.7.2
答:变量是 spam,字符串是'spam'。字符串总是以引号开始和结束。
1.7.3
答:bacon 变量被设置为 20。表达式 bacon + 1 并没有对 bacon 重新赋值,所以变量bacon的值并没有改变,仍然是20。(bacon =bacon + 1才是赋值语句。)
1.7.4
答:两个表达式都求值为字符串'spamspamspam'。第一个语句是将两个字符串连接在一起,即三个spam合成;而第二个语句是复制,将spam重复三遍,即三个spam。
1.7.5
答:变量名不能以数字开始。(详见1.4.2)
1.7.6
答:该表达式导致错误是因为 99 是一个整数,只有字符串能用+操作符与其他字符串连接。 正确的方式是'I have eaten ' + str(99) + ' burritos.'。(详见1.5.6的第二个图片例子,与本题相同。)