今天依旧是学python的一天✍
打卡练习题:菜鸟100实例
031 题目
分析请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
根据(Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday)可知,周一、三、五可以直接由首字母判断,而剩下的需要再分情况判断。
代码 代码一:letter = input('输入第一个字母:')
result = ''
if letter in ('M', 'W', 'F'):
if letter == 'M':
result = 'Monday'
elif letter == 'W':
result = 'Wednesday'
elif letter == 'F':
result = 'Friday'
elif letter == 'S':
letter_second = input('输入第二个字母:')
if letter_second == 'a':
result = 'Saturday'
elif letter_second == 'u':
result = 'Sunday'
else:
result = '单词没拼对吧'
elif letter == 'T':
letter_second = input('输入第二个字母:')
if letter_second == 'h':
result = 'Thursday'
elif letter_second == 'u':
result = 'Tuesday'
else:
result = '单词没拼对吧'
else:
result = '单词没拼对吧'
print(f'结果是:{result}')
二:
码一看着好理解,但也很冗长,后来发现有一种做法更简洁,就是用字典,将字母与星期的单词对应起来。
letter = input('输入第一个字母:')
weak = {'M': 'Monday', 'W': 'Wednesday', 'F': 'Friday',
'T': {'u': 'Tuesday', 'h': 'Thursday'},
'S': {'a': 'Saturday', 'u': 'Sunday'}}
result = ''
if letter in ('M', 'W', 'F'):
result = weak[letter]
elif letter in ('T', 'S'):
letter_second = input('输入第二个字母:')
if letter_second in ('u', 'a', 'h'):
result = weak[letter][letter_second]
else:
result = '再试试,单词没拼对吧'
else:
result = '再试试,单词没拼对吧'
print(f'结果是:{result}')
032 题目
分析按相反的顺序输出列表的值。
如果想一步完成,就直接用reverse()方法,对列表元素反向排序,快捷不费脑;当然,也可以切片搭配循环。
代码""" reverse() """
li = [1, 3, 'F', 2]
li.reverse()
print(f'反序后:{li}')
"""切片+循环"""
li = [1, 3, 'F', 2]
print('反序后:', end='')
for i in li[::-1]:
print(i, end=' ')
小结
这个list.reverse()方法是没有返回值的,直接对原列表进行反序操作,不过这过程也是可逆,再反序一次就变回来啦。
033 题目
分析按逗号分隔列表。
常规操作就是从列表中取值然后在其后加“,”,除此之外,python也提供了一个join()函数,用于字符串的合并,同常见的split()正好相反(死对头),它操作的对象也是字符串。
代码 代码一:li = [1, 2, 3, 'hello']
for i in li:
if i == li[-1]:
print(i)
else:
print(i, end=',')
二:
语法格式:‘sep’.join(seq)
- sep:指定要添加的分隔符
- seq:要连接的元素序列,可以是字符串、列表、元组、字典等
- 有返回值的,返回连接后的字符串
li = [1, 2, 3, 'hello'] s = ','.join(str(i) for i in li) print(s) ----------结果---------- 1,2,3,hello
034 题目
分析练习函数调用。
这个前面的题多少都有间接练习到,就对照着菜鸟上的敲敲吧。
代码def runoob():
print('Hello!RUNOOB!')
def runoobs():
for _ in range(3):
runoob()
if __name__ == '__main__':
runoobs()
035 题目
分析文本颜色设置。
控制字符颜色的转义序列是以ESC开头,即用033来完成。
代码class bcolors:
HEADER = ' 33[95m' # pink
OKBLUE = ' 33[94m' # blue
OKGREEN = ' 33[92m' # green
WARNING = ' 33[93m' # yellow
FAIL = ' 33[91m' # red
ENDC = ' 33[0m' # black
BOLD = ' 33[1m' # black+bold
UNDERLINE = ' 33[4m' # black+underline
print(bcolors.OKGREEN + "绿色的字体" + bcolors.ENDC)
卡!✍第六天打卡完成!今天学习到了join()、reverse(),感觉使用了之后代码轻便了不少,今后多多运用。



