前面简单的介绍了一些基础常用的语法,那么这一篇,我们就来实践一番,写两个小程序,感受一下传说中coding的感觉。
Python打印九九乘法表
先上代码:
result = 0 # 整型变量,用于存储循环时的乘积结果
# 列
for column in range(1, 10): # for循环
# 行
for row in range(1, column 1):
result = column*row # 将当前两个数的乘积赋值给result
print('%d*%d=%d' % (row, column, result), end=' ') # 打印结果
print("")
程序的运行结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
代码解说:
- 第一行代码表示定义一个名为result的整型变量。
- 第二行代码中的range(1, 10)表示构建一个1-9的list列表,如[1,2,3,4,5,6,7,8,9],for column in range(1, 10)表示循环构建好的列表,依次从列表中取出数字赋值给变量column.
- 第三行代码range(1, column 1)意味着当前的list和第一个循环column相关,依次从动态列表取出并赋值给变量row
- 第四行代码表示将result = column*row 表示依次将乘积赋值给变量result。
- 第五行代码是打印,这类涉及到了格式化输出,待会详细讲解一下.print end表示当打印完后再打印end指定的字符,默认是换行符,这里我们用的空格
- 第六行打印空主要是为了换行
Python字符串格式化
刚才在上面的九九乘法表中有用到字符串格式化,那么我们就介绍一下字符串格式化的用法。在Python中字符串格式化有两种:
- 百分号,格式:%[(name)][flags][width].[precision]typecode
- format,格式”{}".format()
百分号
- (name) 可选,用于选择指定的key
- flags 可选,可供选择的值有: 右对齐:正数的加正号,负数的加负号,- 左对齐:正数前没有负号,负数前加负号
- width 可选,占有宽度,有些预留的位置占位符
- .precision 可选,小数点后要保留的位数
- typecode 必选,有s(字符),r,c(整数),o(整数转八进制),x(整数转16进制),d(整数,浮点数转化为十进制表示)
上文的例子就是用的这种方式。下面我们再来针对不同类型写一些简单的示例。
print("我的名字叫%s,我今年%d岁,钱包空空的只有%.3f元钱" % ("eyiadmin",99,9.99999))
最后没打印出:我的名字叫eyiadmin,我今年99岁,钱包空空的只有10.000元钱,这里会对小数进行四舍五入。 其也支持指定字典key的方式,如:
print("我的名字叫%(name)s,我今年%(age)d岁,钱包空空的只有%(money).3f元钱" % {"name":"eyiadmin","age":99,"money":9.99999})
结果和上面的代码一样
format
format采用的是{}占位符的方式,请看示例:
print("我的名字叫{},我今年{}岁,钱包空空的只有{}元钱".format("eyiadmin",99,9.99999))
# 或者指定索引
print("我的名字叫{0},我今年{1}岁,钱包空空的只有{2}元钱".format("eyiadmin",99,9.99999))
# 或者字典方式
print("我的名字叫{name},我今年{age}岁,钱包空空的只有{money}元钱".format(name="eyiadmin",age=99,money=9.99999))
输出结果:
我的名字叫eyiadmin,我今年99岁,钱包空空的只有9.99999元钱
因为我们没有指定类型,所以是并未对我们的浮点型数据进行四舍五入。当然format也是支持数据类型的
print("我的名字叫{:s},我今年{:d}岁,钱包空空的只有{:.2f}元钱".format("eyiadmin",99,9.99999))
输出:
我的名字叫eyiadmin,我今年99岁,钱包空空的只有10.00元钱