第二章 编程基础
学习要点
- print()语句。
- 双引号和单引号。
- 字符串及数值类型转换。
- input()语句。
- 变量的命名和使用、保留字。
对标内容
掌握变量的基本概念,会使用变量,并且掌握变量名的命名和保留字等基本语法;
理解字符串、数值型变量,会对变量类型进行转换。
情景导入
盖房子需要先打地基,学习编程同样的需要先从“地基”入手。在上一课中, 我们对于工具有了基本的了解,这就相当于我们已经认识了写字使用的笔但是想要写好一手好字,还需要把握笔、坐姿、笔顺、笔画等基本功练扎实了。
print()函数
知识点详解
作用:打印输出,即在屏幕上显示相关信息。
语法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
参数:
- objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
- sep -- 用来间隔多个对象,默认值是一个空格。
- end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
- file 、flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新,不要求掌握。
说明:如果后面显示的是字符串,那么需要加引号;如果显示的是可计算的数值类的数据或者变量,可以不用加引号。
使用示例
- 输出字符串:需要在字符串前后加上引号(单引号、双引号均可,但是要成对使用),如下所示(第二行为运行结果)。
>>>print("我是一名学生!")
我是一名学生!
- 输出有数值的数字:输出数字不需要加引号,但是print()函数会对输出的数字进行计算,如下所示(第二行为运行结果)。
>>>print(4+8)
12
- 输出变量:如果字符串没有加引号,print()函数会把它当作变量来处理,如果该变量在print()函数之前已经进行过赋值,则会输出该变量的值,如下所示(第三行为运行结果)。
>>>coding = "Python 3” # 给变量 coding 赋值
>>>print(coding) # 输出 coding
Python 3
输出多个内容:print()函数可以同时输出多个对象,对象之间用逗号隔开,如下所示。
>>>a = 6 >>>b = "China" >>>print(a,b) 6 China
间隔符sep:输出多个内容时,默认用一个空格分开,也可以使用sep参数指定间隔符。
>>> a='Python' >>> b="高级编程语言" >>> print(a,b,sep=":") #使用“:”作为间隔符 Python:高级编程语言
换行end:print()函数默认是在本命令结束后进行换行,如果不需要换行,则需要将默认的参数end = '\n'(换行符)改成其他字符,则该命令结束后将自动输出该字符,如下页所示
print("I am ", end ="--") print("student") I am --student #运行结果
易错点
对于print()函数中的数字,一定要注意观察是否加了引号,如果加了引号,则会当作字符串而不是数字来进行处理。
print()函数可以跨行输出,但是需要使用三引号,如下所示。
>>> print('''* ** ***''') * ** ***
print()函数中的引号(单引号、双引号、三引号)均必须是英文状态下的半角引号。
转义符:在print()函数中,有时候需要输出英文的单引号或者双引号, 由于其有着特殊的含义,所以需要配合Python中的转义符\来进行转义(转义符的使用详见字符串(相关内容),如下所示。
>>>print("I\'m XiangJin.") # 利用转义符输出' I'm XiangJin. # 运行结果
模拟考题
考题1 单选题
在Python中,下列哪个函数用于输出内容到终端?( ) A. print() B. output() C. import() D. echo() 答案:A
解析:输出内容到终端其实就是显示,所以选A。
考题2 单选题
print(6+8/2)输出的结果是( )。 A.7 B.10.0 C.10 D.6+8/2 答案:B
解析:8/2的结果虽然是整数4,但是在Python中,除法默认会自动保留一位小数(在能除尽的情况下),所以8/2的结果是4.0, 6+4.0等于10.0,因而答案是B。
考题3 判断题 print('I\'m ok.') 因为有3个单引号,所以程序是错误的。() 答案:错误
解析:虽然这里使用了3个单引号,但是第二个单引号是在转义符\后面,所以是直接输出单引号,该命令输出的结果是“I'm ok.” 。
考题4 单选题
已知变量x=2,语句print("x=",x)的作用是?( )
A. 在屏幕上输出x=x B. 在屏幕上输出2=2
C. 在屏幕上输出x=2 D. 在屏幕上输出“x=”2
答案:C
解析:如果字符串没有加引号,print()函数会把它当作变量来处理,所以最后一个变量x输出为2
考题5 单选题
输出如下古诗,请问哪句是正确的?( )
闻道梅花坼晓风,雪堆遍满四山中。 何方可化身千亿,一树梅花一放翁。
A. print( '闻道梅花坼晓风,雪堆遍满四山中。 何方可化身千亿,一树梅花一放翁。')
B. print('闻道梅花坼晓风,雪堆遍满四山中。' '何方可化身千亿,一树梅花一放翁。')
C. print('''闻道梅花坼晓风,雪堆遍满四山中。 何方可化身千亿,一树梅花一放翁。''')
D. print("闻道梅花坼晓风,雪堆遍满四山中。"\n "何方可化身千亿,一树梅花一放翁。")
答案:C
解析:选项A,单引号字符串中不能输入换行,换行可以用转义字符\n表示,所以为报错;
选项B,输出的语句会在同一行;
选项C,三引号中可以有行,可以正确输出
选择D,转义字符应放到字符串引号中
考题6 单选题
a=5;print('a+4') 以上两段代码的结果是?( )
A. 9 B. 'a+4' C. 无结果,出错 D. a+4
答案:D
解析: 输出内容带有引号,为字符串,直接输出即可,注意print() 语句输出字符串,输出结果不显示引号
考题7 单选题
print的作用是什么?( )
A. 在屏幕上打印出来相应的文本或者数字等
B. 在打印机里打印相关文本或者数字等
C. 可以用来画图
D. 输出一个命令行
答案:A
考题8 单选题
print(88-8)的运行结果是?( )
A. 88 B.80 C. 88-8 D. 81
答案:B
考题9 单选题
print("17 + 2")输出的结果是?( )
A. "17 + 2" B. 19 C. 172 D. 17 + 2
答案:D
考题10 单选题
下面print语句,哪一个是正确的用法?( )
A. print"(welcome!)" B. print("welcome"!) C. print("welcome!') D. print("welcome!")
答案:D
考题11 单选题
关于print语句,下列选项能够正确输出的是?( )
A. print('hello!,2021年!') B. print 'hello!,2021年!'
C. print"(hello!,2021年!)" D. print("hello!,2021年!')
答案:A
考题12 单选题
在Python IDLE中输入print('Hello');print('I am Python');,并将这两个语句写在一行,试分析,程序的运行结果是以下哪个选项?( )
A. Hello
B. I am Python
C. Hello
I am Python
D. 语法错误
标准答案:C
解析:本题考查Python语言的基本语法,一般的考生会认为通常一行只编写一个语句,其实Python也可以把多个语句写在一行,此时就要在语句的后面加上分号(;)表示结束,同时print()语句输出后,默认会换行。
考题13 单选题
已知a="11",b="22",那么print(a+b)的输出结果是?
A. 11 B. 33 C. 1122 D. 22
标准答案:C
考题14 单选题
下列选项中,代码会报错的是?
A. print('banana' + 'apple') B. print('banana' - 'ana')
C. print('banana' * 100) D. print('banana' + str(6))
答案:B
考题15 判断题
语句:
print( "a", end=" " )
print("b", end=" " )
的显示结果是a b。
答案:正确
考题16 判断题
print()函数不可以在屏幕上打印出空行。
答案:错误
考题17 判断题
print('hello,world')和print('hello','world')输出内容一致。
答案:错误
解析:print('hello,world') 输出为hello,world;print('hello','world') 输出为hello world,多个对象输出,结果默认用空格连接
考题18 判断题
Python = "3.5.2" print(Python)
运行时会提示出错。
答案:错误
考题17 判断题
在Python中,编程语言是不区分大小写的,如:print是打印函数,Print也是打印函数。
答案:错误
解析:Python中,编程语言是区分大小写的
考题17 判断题
语句print("www","python","org",sep=",")的输出结果是:www.python.org
答案:错误
解析:错误。结果是:www,python,org
考题18 判断题
Python中使用print函数输出时,输出完毕默认会换行,不能通过修改参数改为其它间隔方式。
标准答案:错误
解析: print函数中使用end参数可以指定换行之外的其它间隔符,如Tab等。
考题19 判断题
语句print("a","b","c",sep=",")的输出结果是:"a" "b" "c"。
标准答案:错误
解析: print("a","b","c",sep=",")的结果是a,b,c
考题20 判断题
语句1:
print("Hello",end=" ") print("World")
语句2:
print("Hello") print("World")
语句1与语句2的输出结果一样。( )
答案:错误
考题21 判断题
Python可以同一行显示多条语句,方法是在语句中间用分号“;”分开。
答案:正确
变量及变量命名
知识点详解
关于变量
Python中的变量并不直接存储值,而是对存储了值的内存地址的引用。这是因为Python采用基于值的内存管理模式。我们可以这样理解:内存就像是一个个的盒子;值就像是盒子里的物品;而变量则是贴在盒子上的一个个标签。正因为如此,Python中,变量不需要提前声明,但是一定要指向(或者关联)某 一个对象(在这里我们可以把对象理解为放到盒子里的值),变量在指向对象的时候就自动创建了。
变量的命名规则
- 变量名只能由字母、数字、下画线组成,其中字母不光包含英文字母,也可以是汉字或者其他语音文字,但是, 一般情况下,我们并不鼓励使用汉字作为变量名。
- 变量名必须以字母或下画线开头(不能以数字开头),但以下画线开头有特殊的含义,我们也不鼓励开头使用下画线。
- 变量名中不能有空格或者标点符号(如逗号、顿号、分号、冒号等)。
- 不能将保留字作为变量名使用。
- Python变量名是大小写敏感的,也就是说,同样的字母,大写和小写代表不同的变量。
保留字
保留字也称关键字,是指在语言本身的编译器中已经定义过的单词,具有特定含义和用途。用户不能再将这些单词作为变量名或函数名、类名使用。Python的保留字可以通过下面的命令查看。
>>> import keyword
>>> keyword.kwlist
Python语言的35个保留字如下(一级要求记住标*的18个,但考试时也可能出现其余的 17 个):
False*、None*、True*、and*、as*、assert、async、await、break、class、continue、
def*、del*、elif*、else*、except、finally、for*、from*、global、if*、import*、in*、is*、
lambda, nonlocak not*、or*、pass、raise、return、try、while*、with、yield
若将保留字作为变量名并赋值,将会得到语法错误提示,如下所示。
>>> if = "Python"
SyntaxError: invalid syntax
注意:由于变量名是大小写敏感的,所有保留字改变大小写后,也是可以作为变量名的,例如
>>> If='pyhon' >>> false='编程' >>> And='少儿编程'
变量赋值
单个变量赋值
>>> a=1 >>> b=2
以上变量a和变量b的赋值也可写在同一行,用";"隔开即可,例如:
>>> a=1;b=2 >>> a 1 >>> b 2
多个变量赋值同时赋相同的值
>>> a=b='3'
多个变量同时赋不同的值
>>> a,b,c=1,'Python',3+4 >>> a 1 >>> b 'Python' >>> c 7
交换两个变量的值
>>> a=1 >>> b=2 >>> a,b=b,a >>> a 2 >>> b 1
易错点
虽然不鼓励用汉字作为变量名,但是不能说变量名用汉字就是错误的。
Python允许同时为多个变量赋值,该种赋值有两种情况:
第一种,多个变量指向同一个对象;
第二种,多个变量指向不同对象,在该种情况下要注意变量和对象的数量要一致;
如下所示。
a = b = c = 1 #第一种:多个变量指向同一个对象 a,b,c,d = 1,2,3,'Python.' #第二种:多个对象指向不同对象
命令函数不一定是保留字符,比如求和函数sum()中的sum就不是保留字符,sum是可以当作变量名使用的。
模拟考题
考题1 判断题
as、is、class、true都不可以作为变量名。( )
答案:错误
解析:as、is、class确实是Python的保留字,但是true不是,虽然它和True长得很像,但是根据Python的变量规则:大小写是敏感的,True 和true不是一回事,所以true是可以当作变量名的。
考题2 单选题
以下哪个变量命名不符合Python规范?()
A.语言='Python' B. _language='Python' C. language='Python' D. .language='Python'
答案:D
解析:变量名称中除了下画线之外,其余的标点符号都不能有,所以D是错误的;A选项使用了中文,看似也是错误的,但是根据Python的变量规则,可以使用中文命名变量,只是为了尽可能靠近Python的编程规范,不鼓励使用中文来命名变量而已,不能说用中文命名变量就错了。
考题3 单选题
下列哪个不是Python的保留字?()
A. if B. or C. turtle D. for
答案:C
解析:本题目中的C极具迷惑性,因为一级考试中要求同学们掌握turtle库, 所以好多同学误认为turtle是保留字,但是库文件名和保留字不能等同,库文件名是可以作为变量使用的。所以本题正确答案是C。
考题4 单选题
运行下列语句后显示的结果是什么?()
b = 2 * a / 4
a = 1
print(a,b)
A. 1 , 0.5 B. 1 , 0 C.报错 D. 0 , 1
答案:C
解析:这道题,看似a和b都有赋值,但是我们仔细分析,发现b在赋值时引入了变量a,但是这时候a还没有进行变量与对象的匹配(也可以理解为a还没有赋值),所以这时候a变量是在内存中不存在的,必然会报错。因而答案为C。
考题5 单选题
Python中,以下哪个变量赋值方式是正确的?
A. var a = 2 B. int a = 2 C. a = 2 D. if a = 2
答案:C
考题6 单选题
抛硬币,只有反正两种情况,为了统计方便,在程序中怎样做是最合理的?()
A. 只需要一个变量,统计一种情况;
B. 需要两个变量,统计两种情况;
C. 需要三个变量,统计两种情况和总次数;
D. 需要用到随机数,没有规律可找;
答案:B
考题7 单选题
下列Python变量的使用正确的是?
A. 2a = 4 B. my$ = 4 C. class = 4; D. a = 4;
答案:D
考题8 单选题
执行下列语句后的显示结果是什么?( )
b = 2 * a / 4
a = 1
print(a,b)
A. 1 , 0.5 B. 1 , 0 C. 报错 D. 0 , 1
答案:C
考题9 单选题
以下选项中不符合 Python变量命名规则的是?( )
A. name B. 2_to C. _Go D. Tea
答案:B
考题10 单选题
下列选项中不符合Python语言变量命名规则的是?( )
A. Computer B. P C. 3_1 D. _WO1
答案:C
考题11 单选题
要给三个整型变量a、b、c赋值为5,下面Python程序正确的是?( ) A. abc=5 B. a=5,b=5,c=5 C. a=b=c=5 D. a=5 b=5 c=5
答案:C
试题解析:此题考查对变量赋值的理解,根据Python中对变量的赋值语法故答案选择C选项
考题12 单选题
关于变量的说法,错误的是?( )
A. 变量必须要命名
B. 变量第二次赋值后,第一次赋的值将被删除
C. 变量可以用来存储数字,也可以存储文字
D. 在同一个程序里,变量名能重复
答案:D
考题13 单选题
为变量命名,并赋值为数字1,以下选项中,不符合要求的是?( )
A. abc=1 B. HelloWorld=1 C. 1abc=1 D. abc_xyz=1
答案:C
考题14 单选题
关于Python赋值语句,以下选项中不合法的是?
A. a,b=b,a B. a=b=1 C. a=(b=1) D. a=1;b=1
答案:C
考题15 单选题
以下哪个变量名是符合Python变量命名规范的?
A. 123 B. my var C. my_variable D. &var
答案:C
考题16 单选题
下面哪个字符不能用做变量名?
A. the B. is C. yes D. no
答案:B
考题20 判断题
Python创建变量很简单,只要为变量分配一个值即可。
答案:正确
考题20 判断题
Abc、aBc、abC是三个不同的变量。
答案:正确
考题21 判断题
在Python中变量需要提前定义,可以不用赋值。
答案:错误
考题22 判断题
已知y = 5,那么赋值语句y= 'cedf'是无法正常执行的。
答案:错误
考题23 判断题
name = "John",这个赋值语句书写正确。
答案:正确
解析:等号 = 用来给变量赋值。
考题24 判断题
运行下列Python代码后,a和b的数据类型均为字符串。
代码:
a ='5' b ="6"
答案:正确
考题25 判断题
程序:a=b中,a是变量,b是值。
答案:正确
考题26 判断题
12number、my number、my_number都是有效的变量名。
答案:错误
解析:本题考查考生对Python变量的命名规则,根据Python标识符的命名规则,12number这个变量名是违法的,其余的变量名正确,故此题正确答案为错误。
考题27 判断题
每一个变量在使用前都必须赋值,赋值以后该变量才会被创建。
答案:正确
考题28 判断题
a,b=1是一条合法的赋值语句,将1分别赋值给变量a和b。
答案:错误
考题29 判断题
Abc、aBc、abC是三个不同的变量。
答案:正确
考题30 判断题
print(2+eval("3"))运行结果为5。
答案:正确
考题31 判断题
在Python中变量需要提前定义,在使用是再进行赋值
答案:错误
考题32 判断题
变量名大小写是没有区分的,如变量名stuname和StuName是没区别的。
标准答案:错误
内置对象类型,类型转换
知识点详解
Python常见的内置对象类型有如下6种:数字、字符串、列表、元组、字典、 集合。在一级考试中,我们只要求掌握数字(整型和浮点型)与字符串类型的互相转换。
把其他数据类型转换为数字类型(含整型和浮点型)
首先,其他数据类型必须是数字组成的字符串,非数字字符组成的字符串是不能转换为数字;其次,转换的方式为如下3种。
int():作用是将其他对象类型转换为整数,如下所示。
>>>int('123') #将字符串转换为整数
123
>>>int(12.3) #将浮点数转换为整数
12
float():作用是将其他对象类型转换为浮点数,如果原对象类型为整型,则保留1位小数;如果原对象本身含有小数点,则按照原对象小数点后面的位数进行保留,如下所示。
>>>float('123.24') #将字符串转换为浮点数
123.24
>>>float(12) #将整数转换换为浮点数
12.0
eval():作用是返回传入字符串的表达式的结果,由于返回的是表达式的值,所以eval()的返回值是数字类型的对象,如下所示。
>>>eval('4+6') #将字符串4+6表达式的值退回
10
>>>eval("123.4") #将字符串123.4的值退回
123.4
>>>a=1.27
>>> print (eval('a+10'))
11.27
将其他数据类型转换为字符串类型
该种转换,只能使用str()函数,str()函数的功能是将其他数据类型转换为字符串类型,如下页所示。
>>>str(10)
'10'
type()函数
该函数的主要作用是查看对象的数据类型,返回的值常见的有
>>>type("123")
<type 'str'>
字符串类型的基本运算
加法运算:字符串和字符串可以进行加法运算,相当于把两个字符串连接在一起。
乘法运算:字符串可以和整型数据类型进行乘法运算,相当于把该字符串重复显示多少次。如下所示。
>>>print("电子学会"*3)
电子学会电子学会电子学会
数字类型的运算
这种类型的运算比较多也比较复杂,所以我们将把这一部分内容放到运算符中来进行详解。
易错点
字符串的加法运算必须在字符串类型之间进行,不能和其他类型进行加法运算,比如print("123"+3)是错误的。
str()函数在进行转换前要对对象进行计算,如下所示。
>>>a = 4+8 >>>print(str(a)) 12
eval()函数可以计算表达式的结果,不可计算的表达式是无法计算的, 比如含有字母的字符串,还有我们将在二级考核的列表等,所以在使用时必须要注意表达式是否可以转换为可计算的表达式。例如:eval('1+2+4.5')是可以计算的;但是 a = "1+2"时,eval(a+"4.5”)可以计算,eval(a+4.5)和eval('a+4.5')就不可以计算.
>>> a = "1+2" >>> eval(a+'4.5') 25.5
模拟考题
考题1 单选题
a=5
print('a+4')
以上两段代码的运行结果是?()
A.9 B. 'a+4' C.无结果,出错 D. a+4
答案:D
解析:根据题意可知a的值是5,但是print( 'a+4')是一个字符串,并不是 一个运算表达式,所以输出的结果是a+4。
考题2 单选题
以下哪种输入结果不可能得到以下反馈:重要的事情说3遍:安全第一!安 全第一!安全第一!()
A. print("重要事情说3遍:"+"安全第一! "*3)
B. print("重要事情说3遍:"+"安全第一! "+"安全第一 ! "*2)
C. print("重要事情说3遍:安全第一 ! "+"安全第一 ! "+"安全第一!")
D. print("重要事情说3遍:"+"安全第一 ! "/3)
答案:D
解析:这是一个典型的字符串运算的题目,根据字符串运算的规则,A、B、 C均可让“安全第一”重复3次,但是字符串不可以进行除法运算,所以D是错误的。
input()函数
知识点详解
input()函数是Python用来进行人机交互的,Python 3中,input()函数接受一个标准输入数据,返回为字符串类型。
input()函数里面的参数是提示信息,会在进行人机交互时输出在屏幕上, 所以input()函数里面的参数只能使用字符串,如:input("请输入您的姓名:") 如果没有提示信息,屏幕上不会出现提示信息。
易错点
在进行人机交互的时候,无论用户输入的是否是字符串,input()函数返回的值的类型都是字符串类型,所以如果要对输入的数字进行运算,必须要对返回的值进行数据类型的转换,如下所示。
>>>a = input("请输入一个整数")
>>>b = int(a)+12
>>>print(b)
如果需要将input()返回的值转换为数字类型,可以使用int()、float()或者 eval()函数。
模拟考题
考题1 编程题 已知一头奶牛每天可以产20千克牛奶。N (N为变量)头奶牛7天可以产多少千克的牛奶? 要求:
- (程序开始运行后,会有提示字符串:“请输入奶牛的头数:“,完成奶牛头数的输入(可以直接赋值提示字符串到程序中,提示字符串包括冒号,但不包括双引号);
- 程序会根据输入的奶牛头数计算出总共产出的牛奶的重量,并将结果进行修饰然后输出。 示例:如果输入奶牛的头数为10,则输出“10头奶牛7天可以产1400千克的牛奶”
评分标准:
(1 )有输入语句并且有清楚的提示字符串(2分); (2 )有输出语句并且按照样例输出(2分); (3)有类型转换语句(2分); (4)有计算语句(2分); (5)程序符合题目要求(2分)。
参考程序1
N = input("请输入奶牛的头数:")
N = eval(N)
milk = N*20*7
print(N,"头奶牛7天可以产",milk,"千克的牛奶")
参考程序2
N = input("请输入奶牛的头数:")
N = int(N)
milk = N*20*7
print(N,"头奶牛7天可以产",milk,"千克的牛奶")
考题2 单选题 程序:
a = input("请输入一个数字”)
b = a*3
运行后,如果用户输入的数字是44,那么这时候b是多少?()
A. 44 B. 444444 C. 132 D.程序会报错
答案:B
解析:用户输入的是44,但是由于程序中并没有对44进行类型转换,所以44的类型仍然是字符串类型,对字符串进行乘法运算,代表将该字符串重复输出该次数,所以b的结果是44重复3次,即444444,选B。