[自学Python纪录] HackerRank 新手30天挑战-Day05

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,方便在字串内放变数-心原一马】

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章