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')
解题思路流程图:

作业三
打印如下金字塔图形,下图为等腰三角形,上面一行内容永远比下面少两颗星星且位于下面一行的正上发(提示:用两层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,注:打卡后分享到学习群,@助教老师帮你检查作业代码哦