Hi there! 我是嘟嘟~受到前辈启发,想说可以纪录一下自己练习的过程,小女子为程式超超菜鸟,此系列非教学文,仅为个人解题笔记,可能有错误或未补充详尽之处,欢迎前辈们不吝指教!也欢迎正在自学的伙伴一起讨论学习~
Day 5: Loops
输入格式
一个整数n
限制: 2 ≦ n ≦ 20
输出格式
印出前10个倍数(multiples),每个倍数n*i
(1 ≦ i ≦ 10)都要印在新的一行,且必须印出n x i = result
的格式
输入样本
2
输出样本
2 x 1 = 22 x 2 = 42 x 3 = 62 x 4 = 82 x 5 = 102 x 6 = 122 x 7 = 142 x 8 = 162 x 9 = 182 x 10 = 20
首先从1~10重複印出,可以使用for
迴圈;字串可以用+
连结在一起,变数记得转成字串。
我的解答1
n = int(input())for i in range(1,11): #range(1,11)代表数字1~10 print(str(n) + ' x ' + str(i) + ' = ' + str(n*i)) #注意空格
输入6
结果为
6 x 1 = 66 x 2 = 126 x 3 = 186 x 4 = 246 x 5 = 306 x 6 = 366 x 7 = 426 x 8 = 486 x 9 = 546 x 10 = 60
如果要在字串里放入变数,可以使用字串格式化达到让字串里的变数随着迴圈不断改变的效果,在Python里总共有四种方式可以实现。
旧式字串格式化(%)新式字串格式化(format())字串插值(Formatted String Literal)->Python3.6之后样板字串(Template String)我的解答2(%)
n = int(input())for i in range(1,11): print('%d x %d = %d' % (n,i,n*i)) #%d代表印出为十进位整数,并替换为后面%()元组内对应顺序的变数
我的解答3(format())
n = int(input())for i in range(1,11): print('{} x {} = {}'.format(n,i,n*i)) #大括号{}会替换为后面元组内对应顺序的变数,也可以使用名称去指定顺序
format
和旧式格式化相差无几,但主要是捨去%
让字串格式化使用上可以更加正常、规律,可读性也相对提升。
我的解答4(f-string)
n = int(input())for i in range(1,11): print(f'{n} x {i} = {n*i}') #f后面的字串内,放入大括号{}代表要替换的变数
新的字串插值语法相当强大的点是,可以在{}里面嵌入任何 Python 的运算式,一般来说比较推荐这个方法。
我的解答5(Template String)
from string import Template #从内建模组string导入Templaten = int(input())for i in range(1,11): t = Template('$n x $i = $c') print(t.substitute(n=n,i=n,c=n*i)) #名称指定要替换的变数
样板字串较能可以避免一些资讯安全上的问题,例如恶意使用者输入变数来转换成字串格式化,利用敏感性资料(例如:密码、token、金钥等)取出机密资料的时候。
补充:
参考资料【如何使用 Python 进行字串格式化】
【【python入门教室】(9) python3.6版后的新特性: f-string,方便在字串内放变数-心原一马】