重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
继续回车
创新互联建站是一家专注于网站设计、成都做网站与策划设计,夷陵网站建设哪家好?创新互联建站做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:夷陵等地区。夷陵做网站价格咨询:18982081108
def power(x):
... return x*x
... (Enter)
(Enter)
power(5) (Called)
25
return break 都可以终止函数的运行
exit(0) # 无错误退出
exit(1) # 有错误退出
这两条语句一般都会加在程序的最后 因为exit是迫使系统去终止程序的运行!
你好,关于用程序来开机,是怎么做到的呢?这就是 WOL 技术 Wake-On-Lan, 利用计算机在关机或休眠状态时,网卡及主板部分仍然有微弱的供电,当然要保持电源是插上的,而且是有线连接。所以即使在关机情况下,网卡还是有一定运作能力的,可以监听计算机外部的网上广播信息,当发现特定格式的信息后就会执行开机。现在的主板基本都支持。
只需要在网络适配器属性中配置下面两个选项
0.png
1.png
下图这个勾不能选上,我们要保证网卡在关机后仍有供电,如果你关机后,网口的灯不亮了,就不行了,要保持网口灯亮。
2.png
这个特定数据也有个好听的名字叫 Magic Packet(魔法数据包)。一般用过 UDP 协议进行广播。端口一般是7或者9. 魔法数据包总是以"FF FF FF FF FF FF" 连续6个 "FF",后面是 MAC 地址信息,一旦网卡侦测到数据包内容,就会唤醒目标计算机。
我们还是来看一下代码怎么写,代码涉及到 UDP 网络编程这块,后面会专门写写网络编程这块内容。此函数只需输入目标计算机的 MAC 地址即可,在局域网中(当然,如果你的计算机有公网IP,那么在公网中也是可以的)另一台计算机上运行此程序,目标计算机即可自动开机。
代码如下,代码本身很短,原理也很简单:
def wake_up(mac='DC-4A-3E-78-3E-0A'):
MAC = mac
BROADCAST = "192.168.0.255"
if len(MAC) != 17:
raise ValueError("MAC address should be set as form 'XX-XX-XX-XX-XX-XX'")
mac_address = MAC.replace("-", '')
data = ''.join(['FFFFFFFFFFFF', mac_address * 20]) # 构造原始数据格式
send_data = b''
# 把原始数据转换为16进制字节数组,
for i in range(0, len(data), 2):
send_data = b''.join([send_data, struct.pack('B', int(data[i: i + 2], 16))])
print(send_data)
# 通过socket广播出去,为避免失败,间隔广播三次
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(send_data, (BROADCAST, 7))
time.sleep(1)
sock.sendto(send_data, (BROADCAST, 7))
time.sleep(1)
sock.sendto(send_data, (BROADCAST, 7))
print("Done")
except Exception as e:
print(e)
Python 关机
首先分两种情况:
1.交互窗口处执行:这个时候由于python的强制缩进,因此想要结束函数的定义只需要按两下enter即可。
2.在.py文件中编写,结束函数只需要不再缩进即可
调用函数方法相同,把函数名及参数写上就可以了,如果有返回值可以
r=functionA(var1)
附:测试代码(python3运行通过)
# -*- coding:utf-8 -*-
#author:zfxcx
def pt():
print("hello")
pt()
能。如果python的方法中最后返回return **,表示该方法到此结束不再执行,并返回对应的内容;如果只有return表示程序到此中段,不再执行,相当于打断点。望采纳,谢谢。
建议用subprocess
因为如果你的程序不会自动停止,那么用os.system(cmd),cmd会一直持续运行知道调用的程序返回结果。
subprocess可以开启一个子线程,在子线程里面调用,在你需要的时候就可以把这个子线程关掉,这样代码也更灵活
例如:
p = subprocess.Popen("your command")
#todo
#anything you want
time.sleep(10)
p.kill()
这段代码就是在"your command"运行10秒以后,把它杀掉