关于spyder学习

1、writelines() takes exactly one argument (4 given)

这个错误提示意味着你在调用 writelines() 函数时传递了 4 个参数,但是该函数只接受一个参数。你需要检查你的代码,确保你只传递了一个参数给 writelines() 函数。如果你需要传递多个参数,你可以使用其他函数,比如 write() 或者 writelines() 的变体。

原本为fileptr.writelines("艾特金迭代法第",k+1,"次迭代值为",y0)

改正方法为fileptr.writelines("艾特金迭代法第{}次迭代值为{}".format(k+1,y0))

即减少了参数的传递

2、KeyboardInterrupt

在代码大体正确情况下,简单说就是未终止循环,解决方法有两种

一、我的情况是在多个文件切换运行时出现,代码关键内容正确,但是程序卡死或者报错KeyboardInterrupt,简单粗暴方法是自己手动终止程序运行,然后再次重新运行,发现解决,但此方法不推荐,因为没从根本解决问题,重新切文件运行还是出现此情况。

二、根本问题还是最开始说的,循环未终止,虽然代码很理想,但是计算机就是会在循环

KeyboardInterrupt 是 Python 中的一个异常,表示用户在程序运行时通过键盘中断(Ctrl + C)终止了程序。解决方法有以下几种:

  1. 使用 try-except 语句捕获 KeyboardInterrupt 异常,在 except 块中进行相应的处理,然后退出程序。
  2. 使用 while True 循环运行程序,在循环中判断是否捕获到 KeyboardInterrupt 异常,如果是,则进行相应的处理,然后退出循环。
  3. 使用 signal 模块注册一个信号处理函数来处理 KeyboardInterrupt 异常。

在此我选择了第2种方法,即在if语句外套用while True(),当然True也可以改成其他恒成立保证在if() 外层的条件,在此就可以if():  else():break,关键在于break让程序退出循环。

3、如何输出内容到文件

第一步fileptr=open("目标函数.txt",'w',encoding='utf-8'),即打开文件,关于'w'等含义参考http://t.csdn.cn/WeLq3

第二步fileptr.writelines("艾特金迭代法第{}次迭代值为{}".format(k+1,y0)),即输出到文件,此方法发现输出到文件中不自动换行

所以第二步采取另一种方式print("艾特金迭代法第{}次迭代值为{}".format(k+1,y0),file=fileptr)

第三步fileptr.close(),即关闭文件

4、选择调用目标函数

首先python中没有switch case语句这种写法,当然有其他很多方法,不过还没有去吸收学习,此处就直接放上自己刚刚学习改进的例子代码

def get_sunday():
    return "Today it's Sunday"
def get_monday():
    return "Today it's Monday"
def get_tuesday():
    return "Today it's Tuesday"
def get_wednesday():
    return "Today it's Wednesday"
def get_thursday():
    return "Today it's Thursday"
def get_friday():
    return "Today it's Friday"
def get_saturday():
    return "Today it's Saturday"
def get_default():
    return "对"
def f():    
    switcher = {
        0:get_sunday,
        1:get_monday,
        2:get_tuesday,
        3:get_wednesday,
        4:get_thursday,
        5:get_friday,
        6:get_default
}
 
     
    return switcher.get(float(input("请输入n值:")),get_default)()

def main():
    print (f())
    
main()

不过对于f()含有未知数多项式子的选择自己还没掌握等后续掌握再进一步补全吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值