python传参 格式化补零/小数位

输出100以内的质数(1行表达式)

import math
#去掉非质数
def func_get_prime(n):
	  return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1))
 #以列表形式输出
print (list(func_get_prime(100)))

输出

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

python传参传什么

def inc(n):
	print(id(n))
	n=n+1
	print(id(n))
n=3
print(id(n)) # 140716854243664
inc(n)       # 140716854243664
             # 140716854243696
print(n)     # 3
a = [1,2,3]
def foo(b):
    print(b is a)
    b.append(4)
    print(b is a)
foo(a)         # 会打印出 True  True 
print(a)       #  [1,2,3,4]

def bar(c):
    print(c is a)
    c = [0,0,0]
    print(c is a)
bar(a)         # 会打印出 True  False
print(a)       # [1,2,3,4]
a=[1,2,3,4]
b=[i for i in a]
c=a
a.append(3)
print(a,b,c)
#输出为
[1, 2, 3, 4, 3] [1, 2, 3, 4] [1, 2, 3, 4, 3]

对于不可变对象作为函数参数,相当于C系语言的值传递;
对于可变对象作为函数参数,相当于C系语言的引用传递。

在Python中,对于不可变对象,调用自身的任意方法,并不会改变对象自身的内容,这些方法会创建新的对象并返回,保证了不可变对象本身是永远不可变的。

round()函数

  • round(x,n)函数中,是否进位或四舍五入,取决于n位以及n+1位小数的值
  • 只有当n+1位数字是5的时候,容易混淆,如果第n位为偶数,第n+1位数是5,则进位,例如round(1.23456,3)最终变为1.235
  • 如果n为奇数,则n+1位是数5,那不进位,例如round(2.355,2),最终为2.35

输出指定位数小数

形式

print ('%.Nf'% X ) 或者 print ( "%.Nf" % X )
print(format(X,'.Nf') 或者 '{:.Nf}'.format(X)

eg:

print('%.2f' % 10)     # 10.00

print(format(10,'.2f'))   # 10.00
# 或者
for i in range(99):
	num_str2 = '{:.2f}'.format(i)
	print(num_str2)

格式化补零方法

形式

print('%0Nd' % X)
print(format(X,'0Nd') 或者 '{:0Nd}'.format(X)

eg:

# 输出两位数,若为一位数则前面补一个零 eg:01,02,,,98
for i in range(99):
	num_str = '%02d' % i
	print(num_str)

for i in range(99):
	num_str2 = '{:02d}'.format(i)
	print(num_str2)

print(format(10,'03d'))   # 010

# 数字已经转成了字符串格式
# Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
num_str1 = '123'
num_str2 = '-123'
print(num_str1.zfill(5))  # 00123
print(num_str2.zfill(5))  # -0123

控制输出浮点类型数字的位数

print('{:1.12f}'.format(12.343901))
print('{:5.2f}'.format(12.343901))
print('{:7.2f}'.format(12.343901))

输出

12.343901000000
12.34
  12.34

注意:输出的是字符串格式而非浮点型

上例中 1,5,7 代表输出位数,2 代表小数点后面的位数,注意小数点本身也占一位
12.34 总共占5位,1 < 5 ,则保持原样输出12.34,;7 > 5,则在12.34前补空格

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值