Python高手之路体验课 第 10 / 18 篇

数据类型-数字与字符串-参考答案

作业一

写代码,有如下变量,请按照要求实现每个功能

name = " alberT"
# 1 移除 name 变量对应的值两边的空格,并输出处理结果

# 2 判断 name 变量对应的值是否以 "al" 开头,并输出结果 

# 3 判断 name 变量对应的值是否以 "T" 结尾,并输出结果 

# 4 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

# 5 将 name 变量对应的值根据 “l” 分割,并输出结果。

# 6 将 name 变量对应的值变大写,并输出结果 

# 7 将 name 变量对应的值变小写,并输出结果 

# 8 请输出 name 变量对应的值的第 2 个字符?

# 9 请输出 name 变量对应的值的前 3 个字符?

# 10 请输出 name 变量对应的值的后 2 个字符? 

# 11 请输出 name 变量对应的值中 “e” 所在索引位置? 

# 12 获取子序列,去掉最后一个字符。如: albert 则获取 alber
name = " alberT"
# 1 移除 name 变量对应的值两边的空格,并输出处理结果
print(name.strip())
# 2 判断 name 变量对应的值是否以 "al" 开头,并输出结果
print(name.startswith('al'))
# 3 判断 name 变量对应的值是否以 "T" 结尾,并输出结果
print(name.endswith('T'))
# 4 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
print(name.replace('l', 'p'))
# 5 将 name 变量对应的值根据 “l” 分割,并输出结果。
print(name.split('l'))
# 6 将 name 变量对应的值变大写,并输出结果
print(name.capitalize())
# 7 将 name 变量对应的值变小写,并输出结果
print(name.lower())
# 8 请输出 name 变量对应的值的第 2 个字符?
print(name[2])
# 9 请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
# 10 请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
# 11 请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index('e'))
# 12 获取子序列,去掉最后一个字符。如: albert 则获取 alber
print(name[:-1])

作业二

写一个用户猜年龄的程序(同第三章作业二),允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序,如何猜对了,就直接退出。

要求:解决用户输入的不是数字的bug

Albert_age = 18
count = 0
while True:
    if count == 3:
        choice = input('继续(Y/N?)>>: ')
        if choice == 'Y' or choice == 'y':
            count = 0
        else:
            break
    guess = input('>>: ')
    if guess.isdigit():
        guess = int(guess)
        if guess == Albert_age:
            print('you got it')
            break
        count += 1
    else:
        print('invalid operation')

解题思路流程图:

image.png

作业三

打印如下金字塔图形,下图为等腰三角形,上面一行内容永远比下面少两颗星星且位于下面一行的正上发(提示:用两层for loop):

    *
   ***
  *****
 *******
*********
"""
分析
#max_level=5
    *        #current_level=1,空格数=4,*号数=1
   ***       #current_level=2,空格数=3,*号数=3
  *****      #current_level=3,空格数=2,*号数=5
 *******     #current_level=4,空格数=1,*号数=7
*********    #current_level=5,空格数=0,*号数=9
#数学表达式
空格数=max_level-current_level
*号数=2*current_level-1
"""
max_level = 50
for current_level in range(1, max_level + 1):
    for i in range(max_level - current_level):
        print(' ', end='')  # 在一行中连续打印多个空格
    for j in range(2 * current_level - 1):
        print('*', end='')  # 在一行中连续打印多个空格
    print()

要求:

1,写出自己解题思路,形式不限:文字描述、流程图、思维导图

2,完成作业后,截图&上传图片打卡。

3,注:打卡后分享到学习群,@助教老师帮你检查作业代码哦