文章目录

  • >>> 第1关:行与缩进
    • 任务描述
    • 相关知识
      • 缩进
      • 多行语句
    • 编程要求
    • 测试说明
    • 参考答案
  • >>> 第2关:标识符与保留字
    • 任务描述
    • 相关知识
      • 标识符
      • 保留字
    • 编程要求
    • 测试说明
    • 参考答案
  • >>> 第3关:注释
    • 任务描述
    • 相关知识
    • 编程要求
    • 测试说明
    • 参考答案
  • >>> 第4关:输入输出
    • 任务描述
    • 相关知识
      • 输出
      • 输入
    • 字符串转换
    • 编程要求
    • 测试说明
    • 参考答案

>>> 第1关:行与缩进

  • 任务描述
  • 相关知识
    • 缩进
    • 多行语句
  • 编程要求
  • 测试说明

任务描述

本关任务:改正代码中不正确的缩进,使其能够正常编译,并输出正确的结果。

相关知识

缩进

Python 与 C/C++、Java 这些 C 类语言不同,Python 使用缩进来表示代码块,缩进的空格数量可以由个人习惯决定,但同一个代码块的缩进空格数必须相同。

if True:
    print("true")
    print("true")
else:
    print("false")
    print("false");

上面程序的 if 部分和 else 部分缩进不相同,但是在各自的代码块内缩进是相同的,所以是正确的程序。

if True:
    print("true")
print("true")

这个程序的 if 部分缩进不相同,所以是错误的程序。

多行语句

Python 的代码一般是一行一条语句,语句之后的分号 ; 可加可不加。但如果要在一行中写多条语句,则需要用分号 ; 隔开每条语句。

print("hello")
print("world");

print("hello");print("world")

以上三行(四条语句)都是正确的。

编程要求

根据提示,改正右侧编辑器中代码的缩进错误,使其能够正确运行,并输出结果。

测试说明

改正后可得到以下输出: wrong1这里有一个错误缩进wrong2wrong3hello world

参考答案

#有错误的函数1
def wrong1():
    print("wrong1")
    print("这里有一个错误缩进")
    
#有错误的函数2
def wrong2():
    print("wrong2")
    if False:
        print("这个不应该输出")
        print("这个也不应该输出")

#有错误的函数3
def wrong3():
    print("wrong3");print("hello world")


#这里是调用三个函数的代码
#不要修改
if __name__ == '__main__':

    wrong1()
    wrong2()
    wrong3()

>>> 第2关:标识符与保留字

  • 任务描述
  • 相关知识
    • 标识符
    • 保留字
  • 编程要求
  • 测试说明

任务描述

本关任务:改正程序中的错误,并输出 Python3 的所有保留字。

相关知识

标识符

标识符就是程序中,使用的各种名称,例如:变量名、常量名、类名等等。 在 Python 中,对标识符格式的要求与 C/C++、Java 等差不多:

  • 第一个字符必须是字母表中的字母或下划线 _ ;
  • 标识符的其他的部分,由字母、数字和下划线组成;
  • 标识符对大小写敏感;
  • 标识符不能与保留字相同。

比如:

num1 = 1
float1 = 0.5
true = True #这个 true 虽然字面上的意思与值“True”相同,但 python 对大小写敏感,所以也是正确的
str1 = "hello"

这些都是正确的标识符。
而:

1value = 1 #开头不能是数字
value0.1 = 0.1 #标识符中间只能是数字,字母,下划线
if = True #与保留字if重名

都是不正确的标识符。

保留字

保留字即关键字,是 Python 语言中内部使用的单词,代表一定语义。例如:and、class、if、else 等。保留字不能作为标识符,用在变量名、常量名、类名等地方。 Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

import keyword
print(keyword.kwlist)

输出:

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

编程要求

根据提示,改正右侧编辑器的代码,并输出 Python3 的所有保留字。

测试说明

改正程序后会得到以下输出:
:::info
string
1024
1.024
False
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
end
:::

参考答案

import keyword


if __name__ == '__main__':
    #错误1
    str1 = "string"
    print(str1)

    #错误2
    number = 1024
    print(number)

    #错误3
    float_1_024 = 1.024
    print(float_1_024)

    #错误3
    false = False
    print(false)

    #在此处输出保留关键字
    print(keyword.kwlist)
    print("end")

>>> 第3关:注释

  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明

任务描述

本关任务:修改程序,得到正确的结果。

相关知识

注释是对程序代码的说明,一般是给程序员理解代码使用,不作为程序一部分。
Python 中单行注释以 # 开头:

#这是一个注释1
print("python") #这是一个注释2
#print("python2")

运行得到的结果是: python
多行注释可以使用多个#,也可以用一对’‘’(三个单引号)或者"“”(三个双引号)包裹要注释的内容:

#使用多个#
#作注释

'''
用三个单引号
作注释
'''

"""
用三个双引号
作注释
"""

编程要求

根据提示,对右侧编辑器中,部分代码添加注释或者取消注释,使其输出结果与测试说明中的结果一致。

测试说明

处理后的代码应该输出:

1
3
5
hello world
34

参考答案

if __name__ == '__main__':


    #以下是要修改的代码

    print(1)
    # print(2)
    print(3)
    # print(4)
    print(5)
    # print(6)

    print("hello world")
    """
    print("这个不应该输出")
    """
    '''
    print(1)
    print(2)
    '''
    print(3)
    print(4)

>>> 第4关:输入输出

  • 任务描述
  • 相关知识
    • 输出
    • 输入
    • 字符串转换
  • 编程要求
  • 测试说明

任务描述

本关任务:编写一个对用户输入,进行加减乘除四则运算的程序。

相关知识

输出

print的函数的基本使用,在之前的关卡中,已经出现过多次,将要输出的内容放在print()的括号内,就可以输出:

print("hello world")

得到的结果是:hello world
print函数可以同时输出多个内容,只需要将它一起放在print的括号内,并用逗号隔开:

print("hello","world")

得到的结果:hello world
值得注意的是,同时输出的多个内容之间,会有空格隔开。
类似于 C/C++ 的printf,Python 的print也能实现格式化输出,方法是使用%操作符,它会将左边的字符串当做格式字符串,将右边的参数代入格式字符串:

print("100 + 200 = %d" % 300) #左边的%d被替换成右边的300
print("A的小写是%s" % "a") #左边的%s被替换成右边的a

得到的结果是:
100 + 200 = 300A的小写是a
如果要带入多个参数,则需要用()包裹代入的多个参数,参数与参数之间用逗号隔开,参数的顺序应该对应格式字符串中的顺序

print("%d + %d = %d" % (100,200,300))
print("%s %s" % ("world","hello"))

得到的结果是:
100 + 200 = 300world hello
格式字符串中,不同占位符的含义:
%s: 作为字符串%d: 作为有符号十进制整数%u: 作为无符号十进制整数%o: 作为无符号八进制整数%x: 作为无符号十六进制整数,a~f采用小写形式%X: 作为无符号十六进制整数,A~F采用大写形式%f: 作为浮点数%e,%E: 作为浮点数,使用科学计数法%g,%G: 作为浮点数,使用最低有效数位
更多用法可以在网络上自行搜索。
**注意:**print函数输出数据后会换行,如果不想换行,需要指定end=“”:

print("hello" , end="")
print("world" , end="")

得到的结果:helloworld

输入

使用input函数可以获得用户输入,在控制台窗口上,输入的一行的字符串,使用变量 = input()的形式将其赋值给一个变量:

str1 = input()
print("输入的是%s" % str1)

如果输入hello然后回车,则输出:输入的是hello。
还可以在input()的括号内,加入一些提示信息:

str1=input("请输入:")
print("输入的是%s" % str1)

运行之后,会先显示请输入:,输入数据hello之后回车,则会得到输出:输入的是hello,控制台上显示的全部内容为:
请输入:hello输入的是hello

字符串转换

input函数接收的是用户输入的字符串,此时还不能作为整数或者小数进行数学运算,需要使用函数将字符串转换成想要的类型。

  • 转换成整数,使用int()函数:num1 = int(str)
  • 转换成小数,使用float()函数:f1 = float(str)
str = input()
num1 = int(str)
f1 = float(str)
print("整数%d,小数%f" % (num1,f1))

如果输入10,得到的输出是:整数10,小数10.000000。

编程要求

根据提示,在右侧编辑器 Begin-End 区间补充代码,接收用户输入的两个数 a 和 b,对其进行加减乘除四则运算,通过print函数打印四次运算结果,使结果输出形式与预期输出保持一致。

测试说明

平台会对你编写的代码进行测试:
测试输入: 100200
预期输出: 100 + 200 = 300100 - 200 = -100100 * 200 = 20000100 / 200 = 0.500000
测试输入: 52
预期输出: 5 + 2 = 75 - 2 = 35 * 2 = 105 / 2 = 2.500000
提示:
Python 中对两个数(整数,浮点数)进行除法运算后,得到的结果是浮点数,所以输出需要使用%f:

a = 100
b = 200
print("%d / %d = %f" % (a,b,a / b))#第三个占位符使用的是%f,而不是像前两个那样使用%d

得到的结果:100 / 200 = 0.500000

参考答案

if __name__ == "__main__":
    a = int(input())
    b = int(input())
# ********** Begin ********** #
    print("%d + %d = %d" % (a,b,a+b))
    print("%d - %d = %d" % (a,b,a-b))
    print("%d * %d = %d" % (a,b,a*b))
    print("%d / %d = %f" % (a,b,a/b))
    
# ********** End ********** #

更多推荐

【头歌实验】二、Python入门之基础语法