第1关:逆序输出字符串

任务描述
本关任务:编写程序,将一个字符串中的字符按逆序打印出来。。

程序分析
先输出字符串的最后一个字符,且不换行,然后输出倒数第2个字符,同样不换行,一直到第1个字符。利用for循环控制字符索引编号,循环赋值目标变量从0变化到字符串的长度。取字符串的长度可以利用len()函数。

编程要求
根据提示,在右侧编辑器补充代码,输入一个字符串,将字符串中的字符逆序输出。

测试说明
平台会对你编写的代码进行测试:

测试输入1:Please enter a string:ABCDEF
预期输出1:FEDCBA

测试输入2:Please enter a string:Pyhon123
预期输出2:321nohyP

开始你的任务吧,祝你成功!

str = input("Please enter a string:")
for i in range(len(str),0,-1):
    print(str[i-1],end="")

第2关:循环输出字符串

任务描述
本关任务:编写程序,输入一个字符串,每次去掉最后面的字符并输出。

程序分析
先求出字符串的长度,使用切片法输出字符串去掉最后一个字符后的字符串;然后对新的字符串采用同样的方法去掉最后一个字符后输出,一直到只剩下原字符串的第1个字符。利用for循环控制字符索引编号,循环赋值目标变量从-1变化到字符串的长度的负数。取字符串的长度可以利用len()函数。

编程要求
根据提示,在右侧编辑器补充代码,输入一个字符串,将字符串中的字符每次去掉最后面的字符并输出。

测试说明
平台会对你编写的代码进行测试:

测试输入1:Please Input:ABCDEF
预期输出1:
ABCDE
ABCD
ABC
AB
A

测试输入2:Please Input:Pyhon123
预期输出2:
Pyhon12
Pyhon1
Pyhon
Pyho
Pyh
Py
P

开始你的任务吧,祝你成功!

str = input("Please Input:")
i = len(str)
while i > 0:
    print(str[0:i-1])
    i -= 1

第3关:字符串连接

任务描述
本关任务:编写程序,从键盘输入5个字符串,将它们连接成一个字符串后输出。

相关知识
为了完成本关任务,你需要掌握:字符串的连接方法。

编程要求
根据提示,在右侧编辑器补充代码,将输入的5个字符串连接后输出。

测试说明
平台会对你编写的代码进行测试:

测试输入:
Please enter a string:1
Please enter a string:2
Please enter a string:abc
Please enter a string:3
Please enter a string:xyz

预期输出:
12abcxyz

开始你的任务吧,祝你成功!

n = 5
str = ""
while n:
    n -= 1
    str += input("Please enter a string:")

print(str)

第4关:挑选以元音字母开头的单词

任务描述
本关任务:编写程序,从键盘输入5个英文单词,输出其中以元音字母开头的单词。

程序分析
分析:输入一个英文单词,并进行判断,用for循环控制重复执行5次。可以将所有元音字母构成一个字符串s='AEIOUaeiou',遍历该字符串中的各个字符,并判断单词的首字母是否在该字符串中。如果首字母在该字符串中,则是元音,输出单词,否则,不输出。

编程要求
根据提示,在右侧编辑器补充代码,输出以元音字母开头的单词。

测试说明
平台会对你编写的代码进行测试:

测试输入与预期输出:
Please enter a word:a
a
Please enter a word:hello
Please enter a word:every
every
Please enter a word:enter
enter
Please enter a word:key

开始你的任务吧,祝你成功!

n = 5
s = 'AEIOUaeiou'
while n:
    str = input("Please enter a word:")
    if str[0] in s:
        print(str)
    n -= 1

第5关:翻译密码

任务描述
本关任务:翻译密码。为了保密,常不采用明码电文,而用密码电文,按事先约定的规律将一个字符转换为另一个字符,收报人则按相反的规律转换得到原来的字符。例如,将字母“A”→“F”,“B”→“G”,“C”→“H”,即将一个字母变成其后第5个字母。例如,“He is in Beijing.”应转换为“Mj nx ns Gjnonsl.”。

程序分析
依次取电文中的字符,对其中的字母进行处理,对字母之外的字符维持原样。取字母的ASCII代码,加上5,再按其ASCII码转换为另一个字母。还有一个问题要处理,当字母为“V”时,加5就超过了“Z”,故应使之转换为“A”,同理,“W”→“B”,“X”→“C”,“Y”→“D”,“Z”→“E”。判断一个字符是否为字母可以使用str.isalpha()函数。

相关知识
常见的字符串类型测试函数:字符串类型测试函数返回的都是逻辑值,假设有字符串s,则有:
s.isalnum():是否全是字母和数字,并至少有一个字符
s.isalpha():是否全是字母,并至少有一个字符
s.isdigit():是否全是数字,并至少有一个字符
s.isspace():是否全是空格,并至少有一个字符
s.islower():s中的字母是否全是小写
s.isupper():s中的字母是否便是大写
s.istitle():s是否是首字母大写

编程要求
根据提示,在右侧编辑器补充代码,实现对输入的电文加密。

测试说明
平台会对你编写的代码进行测试:

测试输入1:He is in Beijing.
预期输出1:Mj nx ns Gjnonsl.

测试输入2:China
预期输出2:Hmnsf

开始你的任务吧,祝你成功!

str_input = input()
str_output = ''

for i in range(0, len(str_input)):
    if str_input[i].isalpha():
        ascii_code = ord(str_input[i])
        if str_input[i].islower():
            new_ascii_code = ascii_code + 5
            if new_ascii_code > ord('z'):
                new_ascii_code -= 26
        else:
            new_ascii_code = ascii_code + 5
            if new_ascii_code > ord('Z'):
                new_ascii_code -= 26
        str_output += chr(new_ascii_code)
    else:
        str_output += str_input[i]

print(str_output)

第6关:Python的标识符

任务描述
本关任务:Python的标识符以字母或下划线(_)开头,后接字母、数字或下划线组成,从键盘输入字符串,判断它是否Python的标识符。编写程序实现标识符是否正确的判断,要求至少输入两个字符,否则提示input error。

相关知识
Python中的字符串常量
使用字符串常量,应导入string模块,即要使用import string
下面是一些常用的Python字符串常量
string.digits:包含0-9的字符串
string.letters:包含所有大小写字母的字符串
string.lowercase:所有小写字母
string.printable:包含所有可以打印字符的字符串
string.punctuation:包含所有标点的字符串
string.uppercase:包含所有大写字母的字符串

字母字符串常量与地区有关,比如string.letters,也就是说,其具体值取决于python所配置的语言,如果确认自己使用的是ascii,那么可以在签名加上ascii_前缀。例如:string.ascii_letters

使用python内置函数判断字符串是否为关键字
示范代码如下:
import keyword
keyword.iskeyword("str")

其中:
str为要检查的字符串
如果是关键字返回True,不是返回False
例如:int 是整数类型转换函数的函数名,不是关键字所以返回False

任务分析
为了完成本关任务,你可以按如下方式操作:利用string模块中的常量,包括string.digits(数字0~9)、string.ascii_letters(所有大小写字母)、string.ascii_lowercase(所有小写字母)、string.ascii_uppercase(所有大写字母)。先输入字符串,再分别判断首字符和中间字符,并给出提示。判断中间字符利用for循环遍历字符串。

编程要求
根据提示,在右侧编辑器补充代码,对输入的字符串进行判断,显示效果仿照IDLE编辑器的输出效果。

当输入的字符少于2个字符时,输出input error
当输入的字符串是关键字时,则输出*** is a keyword,其中 ***为您输入的字符串,下同
当输入的字符串不是以下划线或字母开头,则输出invalid: first symbol must be alphabetic
当输入的字符串以字母或下划线开头,但是包含字母、数字、下划线以外的字符时(暂不考虑中文等其他字符),则输出invalid:identifier symbols must be alphanumeric
当输入的字符串是合法标识符时,输出*** is a valid identifier
测试说明
平台会对你编写的代码进行测试:

测试输入:Please Input Identifier:a
预期输出:input error

测试输入:Please Input Identifier:_abc
预期输出:_abc is a valid identifier

测试输入:Please Input Identifier:if
预期输出:SyntaxError: if is a keyword

测试输入:Please Input Identifier:123a
预期输出:invalid: first symbol must be alphabetic

测试输入:Please Input Identifier:abc:
预期输出:invalid:identifier symbols must be alphanumeric

开始你的任务吧,祝你成功!


import string
import keyword
n = input("Please Input Identifier:")
digits = string.digits 
letters = string.ascii_letters
punctuation = string.punctuation
Underline = '_' 
lenth = len(n)

if lenth >= 2:

    if n[0] in letters or n[0] in Underline:
        for i in range(1,lenth):
            if n[i] in digits or  n[i] in letters or n[i] in Underline == True:

                fact = True
                continue                               
            else:
                fact = False
                break                
        if fact == True:
            if keyword.iskeyword(n)==True:
                print('SyntaxError: {} is a keyword'.format(n))
            else:
                print('{} is a valid identifier'.format(n))
        else:
            print('invalid:identifier symbols must be alphanumeric')
    else:
          print('invalid: first symbol must be alphabetic')       
else:
    print('input error')
 
 

第7关:求数字之和

任务描述
本关任务:编写程序,实现如下功能:从键盘输入几个数字,用逗号分隔,求这些数字之和。要求输出结果保留2位小数。

程序分析
输入的数字当作一个字符串来处理,首先分离出数字串,再转换成数值,这样就能求和。

相关知识
为了完成本关任务,你需要掌握:str.split()函数的使用。

编程要求
根据提示,在右侧编辑器补充代码,计算并输出输入的字符串中的数字之和。

输入语句建议格式:input('请输入几个数字(用逗号分隔)')
要求输出结果保留2位小数。
测试说明
平台会对你编写的代码进行测试:

测试输入:4,91,51,2,32
预期输出:sum=180.00

测试输入:5,1,1.51,12.3,22,100.24
预期输出:sum=142.05

开始你的任务吧,祝你成功!

str = eval(input("请输入几个数字(用逗号分隔)"))
str = list(str)
sum = 0
for i in range(len(str)):
    sum += float(str[i])
print('sum=%.2f' % sum)

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐