前面简单的介绍了一些基础常用的语法,那么这一篇,我们就来实践一番,写两个小程序,感受一下传说中coding的感觉。
Python打印九九乘法表
先上代码:
result =# 整型变量,用于存储循环时的乘积结果# 列forcolumn inrange(1,10): #for循环 # 行forrow inrange(1, column+1): result = column*row # 将当前两个数的乘积赋值给resultprint('%d*%d=%d'% (row, column, result), end=' ') # 打印结果print("")
程序的运行结果:
1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*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元钱