函数中 参数值为None意义 非零即真 非空即真

python函数参数为None的时候,比如 def open_file(content=None),是因为这个函数是一个封装函数,在没有调用他的时候他的参数需要加上None。
如果不加None值,不调用函数他会报错。

一般会用在封装类或者框架里。比如说框架一般会有一个总的调用函数,总的调用函数启动,这次没有获取到值,执行到open_file函数时无法给open_file函数参数,
那如果没有参数open_file函数就会报错。报错信息如下:

一般会报:‘open_file() missing 1 required positional argument: 'content'’但是如果参数为None就不会报错。如果程序执行到req参数传递成功的话,参数就不会是None了。
所以None是一个防止报错的机制。

 


实际运行程序为产生多条双色球 并写入文件

import random
num = input("请输入产生数据的条数:").strip()
if not num.isdigit():
print("请输入整数!")
else:
num = int(num)
count=0
def open_file(content=None):
with open('seq.txt', 'a+', encoding='utf-8') as fw:
if content:#非零即真 还有个非空即真 空元组 空字典 空字符串 空列表都是空 dic={} if dic:这种形式
fw.write(content)#将content写入文件seq.txt
else:
fw.seek(0,0)# 重新设置文件读取指针到开头
fw.read()
return fw.read()
while num>count:
n1 = [str(i).zfill(2) for i in range(1, 33)] # 将生成的红球数字 用两位数表示。如:01 02 03
n2 = [str(i).zfill(2) for i in range(1, 16)] # 同红球
red = random.sample(n1, 6) # 随机取list中的6个数字
red.sort() # 将红球数字排序
blue = random.choice(n2)
red_str = ' '.join(red) # 将随机生成的6位红球号码转换成字符串类型
result = "红球是:%s 蓝球是:%s\n" % (red_str, blue)
# result= "%s %s\n"%(red_str, blue)
print(result)
all_ball = open_file()
if result not in all_ball:
open_file(result)
count += 1

 


posted @ 2021-01-13 22:14  化缘002  阅读(699)  评论(0编辑  收藏  举报