python输出整数为什么要保留一位 python输出保留一位小数_Python


本辑答疑针对Pathon自然学习法的这三节课的内容:

  • 如何高效而完美地洗牌?用Python做很简单
  • 用Python计算扑克牌缺门概率
  • 三种好玩易懂的圆周率计算方法

Q: 我看到有些变量后面可以加.remove( ), 或者.append( ),这是什么操作?

A: 你说的是列表(list)变量。有很多可以对列表进行操作的函数,这是Python非常强大的地方。假如 students 是你们班上同学的名字表,那么你可以:

  • students.remove( ),可以删除一个名字
  • students.insert( ),可以插入一个名字
  • students.append( ),可以增加一个名字(在最后面)
  • students.sort( ),可以对名字排序
  • ......

这种写在变量后面的特殊函数叫“方法”,是一个对变量的操作。括号中也可能用到参数,这里不一一讲解,你以后遇到了,看到了,很快就熟悉了,都是符合自然习惯、符合常规逻辑的。

Q: 我看到列表的初始化语句里也有for循环,这是怎么回事?

A: 这也是Python强大的一个功能:假如你要用一系列有规律的数字来初始化一个列表,你不需要把他们一个一个敲进去,也不需要先定义列表再另外写一个的for循环来一个一个元素的初始化,你可以把初始化for循环语句写在定义语句里。比如:


odd_numbers =  [ 2*i+1 for i in range(100) ]


这句话的意思就是:生成从1到199的所有奇数,放到名为odd_numbers这个列表里。如果你熟悉英文,这句话看上去也很自然对不对?

Q: 打印函数print( )是不是也有格式控制符?

A: 是的,在这个单元的有些程序里我们用到了打印的格式控制。Python的打印语句格式控制的最基本规则是:


%o —— oct 八进制
%d —— dec 十进制
%x —— hex 十六进制
%f —— 浮点数,缺省保留小数点后面六位有效数字
%e —— 浮点数,缺省保留小数点后面六位有效数字,指数形式输出
%g —— 浮点数,在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法

在%和字母之间可以放一个数,整数部分表示打印占用的空间,小数部分表示保留小数的位数
  %10d, 占用10个字符的位置,右对齐;若要左对齐,可在10前面加个负号
  %.3f,保留3位小数位
  %.3e,保留3位小数位,使用科学计数法
   %.3g,保留3位有效数字,使用小数或科学计数法


例如:


print("%-20d  %-20.12f" % (n, x) )


表示先打印一个整数n,占20个字符的宽度,左对齐;然后在同一行继续打印浮点数x,占20个字符的宽度,左对齐,保留小数到第12位。

这一部分是Python跟很多其它编程语言一样,不那么人性化的部分,得死记硬背。不过,如果熟悉英文的话,背起来也不是很困难。

Python打印还有一种用format参数的方式,可自行Google了解一下。

Q: 请问什么时候要用自定义函数?怎么自定义函数?

A: 如果你在不同地方要写一些完全相同的代码段,那么你可以考虑把这段代码独立抽取出来形成一个自定义函数,这样你就可以反复调用它而不必反复写出来。

在《巨蟒超级计算器》中,因为要多次打印提示信息,所以我们定义了一个叫print_prompt( )的函数。这样每当我们需要打印提示信息的时候,我们就调用一下print_prompt()函数,而不必把很多行的提示信息在代码中再敲一遍了。

自函数定义要在你调用它之前定义好,使用def关键字。def是英语define的缩写。格式是:


def 函数名(参数1, 参数2, ...) :
    ......
    ......
    ......


注意第一行后面的冒号和下面内容的缩进对齐。参数可以没有,可以一个,也可以有多个。调用的时候要按同样的顺序和数据类型传递参数。