【头歌-Python】Python第五章作业(初级)(7~16)

  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    Python第五章作业(初级)(7~16)

    • 第7关:各位数字之和为5的数
      • 参考代码
    • 第8关:字符串长度
      • 参考代码
    • 第9关:字符串加密
      • 参考代码
    • 第10关:输出单词
      • 参考代码
    • 第11关:字符大小写转换
      • 参考代码
    • 第12关:查找指定字符
      • 参考代码
    • 第13关:随机密码生成器
      • 参考代码
    • 第14关:模拟生成微软序列号
      • 参考代码
    • 第15关:数列求和
      • 参考代码
    • 第16关:单词个数
      • 参考代码

第7关:各位数字之和为5的数

任务描述
输入一个1000以内的正整数 n,在同一行内输出 [0,n] 之间各位数字之和为5的数,数字之间用空格分开(行末有一个空格)。

输入格式
输入一个1000以内的正整数 n

输出格式
符合条件的数

示例
输入:

100

输出:

5 14 23 32 41 50

参考代码

a = int(input())
for i in range(a+1):
    if i==5:
        print(i, end=' ')
    elif len(str(i))==2 and int(str(i)[0])+int(str(i)[1])==5:
        print(i, end=' ')
    elif len(str(i))==3 and int(str(i)[0])+int(str(i)[1])+int(str(i)[2])==5:
        print(i, end=' ')

第8关:字符串长度

任务描述
用户输入一个字符串,程序输出字符串的长度

输入格式
输入一个字符串

输出格式
一个表示字符串长度的整数

示例 1
输入:

Hello world!

输出:

12

参考代码

print(len(input()))

第9关:字符串加密

任务描述
用户在一行中输入一个包括大小写字母和数字的字符串,编程将其中的大写字母用字母表中该字母后的第5个字母替代,小写字母用字母表中该字母后的第3个字母替代,其他字符原样输出,实现字符串加密。

输入格式
输入一个至少包含一个字母的字符串

输出格式
加密后的字符串

示例 1
输入:

Life is short, you need Python!

输出:

Qlih lv vkruw, brx qhhg Ubwkrq!

参考代码

a = 'ABCDEFGHIGKLMNOPQRSTUVWXYZ'
b = 'FGHIGKLMNOPQRSTUVWXYZABCDE'
c = 'abcdefghijklmnopqrstuvwxyz'
d = 'defghijklmnopqrstuvwxyzabc'
s = input()
res = ''
for i in s:
    n = a.find(i)
    m = c.find(i)
    if n==-1 and m==-1:
        res+=i
    elif n!=-1 and m==-1:
        res+=b[n]
    elif n==-1 and m!=-1:
        res+=d[m]
print(res)

第10关:输出单词

任务描述
输入一个英文句子,每个单词间用空格分隔,标点符号前面无空格,后面跟一个空格,请按出现顺序将每个单词分行输出(标点符号归属于前面的单词)。

输入格式
一个英文句子

输出格式
分行输出句子中的单词

示例
输入:

Never forget to say “thanks”.

输出:

Never
forget
to
say
“thanks”.

参考代码

a = input().split(' ')
for j in a:
    print(j)

第11关:字符大小写转换

任务描述
输入一个字符串,将其中大写字母转为小写,小写字母转为大写,其他字符保持原样,输出转换后的字符串。

输入格式
输入一个字符串。

输出格式
输出转换后的字符串。

示例 1
输入:

Hello, Python 3.7.4

输出:

hELLO, pYTHON 3.7.4

参考代码

s = input()
res = ''
for c in s:
    if 'a'<=c<'z':
        res += c.upper()
    elif 'A'<=c<='Z':
        res += c.lower()
    else:
        res += c
print(res)

第12关:查找指定字符

任务描述
编写程序,从用户给定字符串中查找某指定的字符。

输入格式
输入的第一行是一个待查找的字符

第二行是一个以回车结束的非空字符串。

输出格式
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最小下标(下标从0开始); 否则输出"Not Found"。

示例 1
输入:

m
programming

输出:

index = 6

参考代码

a = input()
b = input()
flag = 0
for i in b:
    if i==a:
        print('index = ' + str(b.find(i)))
        flag = 1
        break
if flag==0:
    print('Not Found')

第13关:随机密码生成器

任务描述
从字符串

'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\()*+,-.'

中每次随机抽取 1 个字符,重复 n 次,用取得的字符构成的一个新字符串用做密码,密码长度 n 和随机数种子 s 由用户输入。

本题必须使用random.choice()函数进行随机抽取

输入格式
在一行内输入2个正整数 ns,分别表示密码长度和随机数种子,数字间用半角逗号分隔。

输出格式
一个长度为 n 字符串

示例
输入:

10,5

输出:

wJ&3Xv6keL

参考代码

from random import *
n, s = map(int, input().split(','))
a = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\()*+,-.'
seed(s)
for i in range(n):
    c = choice(a)
    print(c, end='')

第14关:模拟生成微软序列号

任务描述
微软产品一般都一个25位的序列号,是用来区分每份微软产品的产品序列号。产品序列号由五组被“-”分隔开,由字母数字混合编制的字符串组成,每组字符串是由五个字符串组成。如: 36XJE-86JVF-MTY62-7Q97Q-6BWJ2 每个字符是取自于以下24个字母及数字之中的一个: B C E F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9 采用这24个字符的原因是为了避免混淆相似的字母和数字,如I1O0等,避免产生不必要的麻烦。 随机数种子函数语法为:random.seed(n)

本题要求应用random.choice()方法每次获得一个随机字符!!!

输入格式
在2行中各输入一个正整数:
第1个整数代表要生成的序列号的个数
第2个正整数代表随机数种子

输出格式
指定个数的序列号

示例
输入:

2
10

输出:

3CVX3-BJWXM-6HCYX-QEK9R-CVG4R
TVP7M-WH7P7-RGWKW-4TC3B-KGJP2

平均代码量 15 行

参考代码

from random import *

n = int(input())
s = int(input())
seed(s)
c = 'BCEFGHJKMPQRTVWXY2346789'
for i in range(n):
    key = ''
    for j in range(1, 26):
        key += choice(c)
        if j%5==0 and j!=25:
            key += '-'
    print(key)

第15关:数列求和

任务描述
本关任务:
计算特殊序列表达式的值,

a+aa+aaa+aaaa+...+a...a(N个a)

其中1<=a<=9,第N项由Na组成.
例:若a=1,N=3,表达式为:

1+11+111

编程要求
输入:
第一行输入一个整数A,且该数应该介于19之间(包含19
第二行输入一个整数N

输出:
输出其 N 项数列之和的值。
当输入不符合要求时输出:data error

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

测试输入:

1
3

预期输出:

123

测试输入:

12
-3

预期输出:

data error

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

参考代码

a = int(input())
b = int(input())
if a<1 or a>9 or b<0:
    print('data error')
else:
    s = d = 0
    for i in range(b):
        d = d*10+a
        s += d
    print(s)

第16关:单词个数

任务描述
本关任务:输入一个英文句子,以回车符结束,单词间以空格分隔,标点符号后跟至少一个空格,统计并输出单词的个数(仅统计单词,数字按单词计,不计算标点符号,重复单词出现几次就统计几次)。

编程要求
输入:一个英文句子
输出:单词个数

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

测试输入:

Life is short, you need Python!

预期输出:

6

参考代码

a = input().split(' ')
print(len(a))

你可能感兴趣的:(Python,头歌-Educoder,python,开发语言,头歌)