第二章 编程基础

学习要点

  • print()语句。
  • 双引号和单引号。
  • 字符串及数值类型转换。
  • input()语句。
  • 变量的命名和使用、保留字。

对标内容

掌握变量的基本概念,会使用变量,并且掌握变量名的命名和保留字等基本语法;

理解字符串、数值型变量,会对变量类型进行转换。

情景导入

盖房子需要先打地基,学习编程同样的需要先从“地基”入手。在上一课中, 我们对于工具有了基本的了解,这就相当于我们已经认识了写字使用的笔但是想要写好一手好字,还需要把握笔、坐姿、笔顺、笔画等基本功练扎实了。

print()函数

知识点详解

作用:打印输出,即在屏幕上显示相关信息。

语法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file 、flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新,不要求掌握。

说明:如果后面显示的是字符串,那么需要加引号;如果显示的是可计算的数值类的数据或者变量,可以不用加引号。

使用示例

  1. 输出字符串:需要在字符串前后加上引号(单引号、双引号均可,但是要成对使用),如下所示(第二行为运行结果)。
   >>>print("我是一名学生!")
   我是一名学生!
  1. 输出有数值的数字:输出数字不需要加引号,但是print()函数会对输出的数字进行计算,如下所示(第二行为运行结果)。
   >>>print(4+8)
   12
  1. 输出变量:如果字符串没有加引号,print()函数会把它当作变量来处理,如果该变量在print()函数之前已经进行过赋值,则会输出该变量的值,如下所示(第三行为运行结果)。
   >>>coding = "Python 3# 给变量 coding 赋值
   >>>print(coding)        # 输出 coding
   Python 3
  1. 输出多个内容:print()函数可以同时输出多个对象,对象之间用逗号隔开,如下所示。

    >>>a = 6
    >>>b = "China"
    >>>print(a,b)
    6 China
    
  2. 间隔符sep:输出多个内容时,默认用一个空格分开,也可以使用sep参数指定间隔符。

    >>> a='Python'
    >>> b="高级编程语言"
    >>> print(a,b,sep=":")    #使用“:”作为间隔符
    Python:高级编程语言
    
  3. 换行end:print()函数默认是在本命令结束后进行换行,如果不需要换行,则需要将默认的参数end = '\n'(换行符)改成其他字符,则该命令结束后将自动输出该字符,如下页所示

    print("I am ", end ="--")
    print("student")
    I am --student #运行结果
    

易错点

  1. 对于print()函数中的数字,一定要注意观察是否加了引号,如果加了引号,则会当作字符串而不是数字来进行处理。

  2. print()函数可以跨行输出,但是需要使用三引号,如下所示。

    >>> print('''*
    **
    ***''')
    *
    **
    ***
    
  3. print()函数中的引号(单引号、双引号、三引号)均必须是英文状态下的半角引号。

  4. 转义符:在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中,变量不需要提前声明,但是一定要指向(或者关联)某 一个对象(在这里我们可以把对象理解为放到盒子里的值),变量在指向对象的时候就自动创建了。

变量的命名规则

  1. 变量名只能由字母数字下画线组成,其中字母不光包含英文字母,也可以是汉字或者其他语音文字,但是, 一般情况下,我们并不鼓励使用汉字作为变量名。
  2. 变量名必须以字母或下画线开头(不能以数字开头),但以下画线开头有特殊的含义,我们也不鼓励开头使用下画线。
  3. 变量名中不能有空格或者标点符号(如逗号、顿号、分号、冒号等)。
  4. 不能将保留字作为变量名使用。
  5. Python变量名是大小写敏感的,也就是说,同样的字母,大写和小写代表不同的变量。

保留字

保留字也称关键字,是指在语言本身的编译器中已经定义过的单词,具有特定含义和用途。用户不能再将这些单词作为变量名或函数名、类名使用。Python的保留字可以通过下面的命令查看。

>>> import keyword
>>> keyword.kwlist

Python语言的35个保留字如下(一级要求记住标*的18个,但考试时也可能出现其余的 17 个):

False*None*True*and*as*assertasyncawaitbreakclasscontinuedef*del*elif*else*exceptfinallyfor*from*globalif*import*in*is*lambda, nonlocak not*or*passraisereturntrywhile*withyield

若将保留字作为变量名并赋值,将会得到语法错误提示,如下所示。

>>> if = "Python"
SyntaxError: invalid syntax

注意:由于变量名是大小写敏感的,所有保留字改变大小写后,也是可以作为变量名的,例如

>>> If='pyhon'
>>> false='编程'
>>> And='少儿编程'

变量赋值

  1. 单个变量赋值

    >>> a=1
    >>> b=2
    

    以上变量a和变量b的赋值也可写在同一行,用";"隔开即可,例如:

    >>> a=1;b=2
    >>> a
    1
    >>> b
    2
    
  2. 多个变量赋值同时赋相同的值

    >>> a=b='3'
    
  3. 多个变量同时赋不同的值

    >>> a,b,c=1,'Python',3+4
    >>> a
    1
    >>> b
    'Python'
    >>> c
    7
    
  4. 交换两个变量的值

    >>> a=1
    >>> b=2
    >>> a,b=b,a
    >>> a
    2
    >>> b
    1
    

易错点

  1. 虽然不鼓励用汉字作为变量名,但是不能说变量名用汉字就是错误的。

  2. Python允许同时为多个变量赋值,该种赋值有两种情况:

    第一种,多个变量指向同一个对象;

    第二种,多个变量指向不同对象,在该种情况下要注意变量和对象的数量要一致;

    如下所示。

    a = b = c = 1                #第一种:多个变量指向同一个对象
    a,b,c,d = 1,2,3,'Python.'   #第二种:多个对象指向不同对象
    
  3. 命令函数不一定是保留字符,比如求和函数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'list'〉等和对象类型相匹配的类型名称,如下所示。

>>>type("123")
<type 'str'>

字符串类型的基本运算

加法运算:字符串和字符串可以进行加法运算,相当于把两个字符串连接在一起。

乘法运算:字符串可以和整型数据类型进行乘法运算,相当于把该字符串重复显示多少次。如下所示。

>>>print("电子学会"*3)
电子学会电子学会电子学会

数字类型的运算

这种类型的运算比较多也比较复杂,所以我们将把这一部分内容放到运算符中来进行详解。

易错点

  1. 字符串的加法运算必须在字符串类型之间进行,不能和其他类型进行加法运算,比如print("123"+3)是错误的。

  2. str()函数在进行转换前要对对象进行计算,如下所示。

    >>>a = 4+8
    >>>print(str(a))
    12
    
  3. 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天可以产多少千克的牛奶? 要求:

  1. (程序开始运行后,会有提示字符串:“请输入奶牛的头数:“,完成奶牛头数的输入(可以直接赋值提示字符串到程序中,提示字符串包括冒号,但不包括双引号);
  2. 程序会根据输入的奶牛头数计算出总共产出的牛奶的重量,并将结果进行修饰然后输出。 示例:如果输入奶牛的头数为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。

Copyright © all right reserved,powered by Gitbook该文件修订时间: 2023-07-23 15:40:58