当前位置: 首页 > news >正文

哪些企业网站做的比较好网站位置导航

哪些企业网站做的比较好,网站位置导航,网页制作怎么插图片,广告公司名称怎么取好【Python】基于OpenCV人脸追踪、手势识别控制的求生之路FPS游戏操作 文章目录 手势识别人脸追踪键盘控制整体代码附录#xff1a;列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 视频#xff1a; 基于OpenCV人脸追踪、手势识别控制的求实之路FPS游戏操作 手…【Python】基于OpenCV人脸追踪、手势识别控制的求生之路FPS游戏操作 文章目录 手势识别人脸追踪键盘控制整体代码附录列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 视频 基于OpenCV人脸追踪、手势识别控制的求实之路FPS游戏操作 手势识别 采用MediaPipe模块来完成手势识别 同时通过计算各个关键点与手掌平面的角度来判断手指是否弯曲、伸展 如上图为各个关键点的ID序号 比如蜘蛛侠手势 elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str Spider-Man就是判断拇指 食指 小指伸展 其他闭合 【优秀课设】基于OpenCVMediaPipe的手势识别数字、石头剪刀布等手势识别 def vector_2d_angle(v1,v2):求解二维向量的角度v1_xv1[0]v1_yv1[1]v2_xv2[0]v2_yv2[1]try:angle_ math.degrees(math.acos((v1_x*v2_xv1_y*v2_y)/(((v1_x**2v1_y**2)**0.5)*((v2_x**2v2_y**2)**0.5))))except:angle_ 65535.if angle_ 180.:angle_ 65535.return angle_def hand_angle(hand_):获取对应手相关向量的二维角度,根据角度确定手势angle_list []#---------------------------- thumb 大拇指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[2][0])),(int(hand_[0][1])-int(hand_[2][1]))),((int(hand_[3][0])- int(hand_[4][0])),(int(hand_[3][1])- int(hand_[4][1]))))angle_list.append(angle_)#---------------------------- index 食指角度angle_ vector_2d_angle(((int(hand_[0][0])-int(hand_[6][0])),(int(hand_[0][1])- int(hand_[6][1]))),((int(hand_[7][0])- int(hand_[8][0])),(int(hand_[7][1])- int(hand_[8][1]))))angle_list.append(angle_)#---------------------------- middle 中指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[10][0])),(int(hand_[0][1])- int(hand_[10][1]))),((int(hand_[11][0])- int(hand_[12][0])),(int(hand_[11][1])- int(hand_[12][1]))))angle_list.append(angle_)#---------------------------- ring 无名指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[14][0])),(int(hand_[0][1])- int(hand_[14][1]))),((int(hand_[15][0])- int(hand_[16][0])),(int(hand_[15][1])- int(hand_[16][1]))))angle_list.append(angle_)#---------------------------- pink 小拇指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[18][0])),(int(hand_[0][1])- int(hand_[18][1]))),((int(hand_[19][0])- int(hand_[20][0])),(int(hand_[19][1])- int(hand_[20][1]))))angle_list.append(angle_)return angle_listdef h_gesture(angle_list):# 二维约束的方法定义手势# fist five gun love one six three thumbup yeahthr_angle 65. #手指闭合则大于这个值大拇指除外thr_angle_thumb 53. #大拇指闭合则大于这个值thr_angle_s 49. #手指张开则小于这个值gesture_str Unknownif 65535. not in angle_list:if (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 0elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 1elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 2elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle):gesture_str 3elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle_s):gesture_str 4elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle_s):gesture_str 5elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str 6elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 8elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str Pink Upelif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str Thumb Upelif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str Fuckelif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle_s):gesture_str Princesselif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str Byeelif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str Spider-Manelif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str RocknRollreturn gesture_strdef hand_detect():global qglobal kill_all_flagglobal cam_imgbye_flag 0bye_time time.time()hand_jugg Nonegesture_str Nonewhile True:time.sleep(0.1)while q0:time.sleep(0.1)frame cv2.cvtColor(cam_img, cv2.COLOR_BGR2RGB)results hands.process(frame)if results.multi_handedness: for hand_label in results.multi_handedness:hand_juggstr(hand_label).split()[1] Handprint(hand_jugg) # cv2.putText(faceImg,hand_jugg,(50,200),0,1.3,(0,0,255),2)if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks: # mp_drawing.draw_landmarks(faceImg, hand_landmarks, mp_hands.HAND_CONNECTIONS)hand_local []for i in range(21):x hand_landmarks.landmark[i].x*frame.shape[1]y hand_landmarks.landmark[i].y*frame.shape[0]hand_local.append((x,y))if hand_local:angle_list hand_angle(hand_local)gesture_str h_gesture(angle_list)print(gesture_str) # cv2.putText(faceImg,gesture_str,(50,100),0,1.3,(0,0,255),2)if gesture_str Bye:if bye_flag 0:bye_flag 1elif bye_flag 1 and time.time() - bye_time 3:kill_all_flag 1q 1print(Good-Bye)else:bye_flag 1 else:Keyborad(hand_jugg,gesture_str)bye_flag 0hand_jugg Nonegesture_str Noneif q 1:breakif kill_all_flag 1:breakreturn 人脸追踪 【优秀毕设V2.0】基于树莓派的OpenCV-Python摄像头人脸追踪及手势识别、网络地址推流及远程控制系统多功能系统、含演示视频 此部分简单易懂 就是靠识别人脸的位置 然后再判断位置就可以了 def track():global qglobal kill_all_flagglobal cam_imgglobal left_pointglobal right_pointwhile True:time.sleep(0.1)while q0: time.sleep(0.05) gray cv2.cvtColor(cam_img,cv2.COLOR_BGR2GRAY)faceRects classifier.detectMultiScale(gray,scaleFactor1.2,minNeighbors3,minSize(32, 32))if len(faceRects):x,y,w,h faceRects[0]# 框选出人脸 最后一个参数2是框线宽度 # cv2.rectangle(faceImg,(x, y), (x w, y h), (0,255,0), 2)central_point xw/2 if central_point left_point:print(Right)Mouse(1)elif central_point right_point:print(Left)Mouse(2)else:Mouse(0)if q 1:print(S)breakif kill_all_flag 1:breakreturn 键盘控制 采用pyautogui库来进行 以下两个函数分别是鼠标移动和键盘操作 def Mouse(flag):print(flag)if flag1:pyautogui.moveTo(100, 100, duration0.25)passelif flag2:pyautogui.moveRel(-50, 0, duration0.25)pass def Keyborad(hand_jugg,gesture_str):print(hand_jugg,gesture_str)if hand_juggRight Hand:if gesture_str1:pyautogui.click()elif gesture_str2:pyautogui.click(buttonright)elif gesture_str4:pyautogui.mouseDown()elif gesture_str5:pyautogui.mouseUp()整体代码 整体代码将三个部分整合起来 并且用多线程的方式 将摄像头获取、人脸追踪、手势识别跑起来 互不影响 # -*- coding: utf-8 -*-Created on Sun Sep 10 10:54:53 2023author: ZHOU import cv2 import threading import mediapipe as mp import math import timeimport pyautoguipyautogui.FAILSAFE True # 启用自动防故障功能左上角的坐标为00将鼠标移到屏幕的左上角来抛出failSafeException异常global q q 0 global kill_all_flag kill_all_flag 0cap cv2.VideoCapture(0) # 开启摄像头 classifier cv2.CascadeClassifier(./haarcascade_frontalface_alt2.xml)global cam_img ok, cam_img cap.read() # 读取摄像头图像 if ok is False:q 1kill_all_flag 1print(无法读取到摄像头) highcam_img.shape[0] widthcam_img.shape[1] global left_point global right_point left_point width/2width*0.04 right_point width/2-width*0.04mp_drawing mp.solutions.drawing_utils mp_hands mp.solutions.hands hands mp_hands.Hands(static_image_modeFalse,max_num_hands1,min_detection_confidence0.6,min_tracking_confidence0.75)def Mouse(flag):print(flag)if flag1: # pyautogui.moveTo(100, 100, duration0.25)passelif flag2: # pyautogui.moveRel(-50, 0, duration0.25)pass def Keyborad(hand_jugg,gesture_str):print(hand_jugg,gesture_str)if hand_juggRight Hand:if gesture_str1:pyautogui.click()elif gesture_str2:pyautogui.click(buttonright)elif gesture_str4:pyautogui.mouseDown()elif gesture_str5:pyautogui.mouseUp()def vector_2d_angle(v1,v2):求解二维向量的角度v1_xv1[0]v1_yv1[1]v2_xv2[0]v2_yv2[1]try:angle_ math.degrees(math.acos((v1_x*v2_xv1_y*v2_y)/(((v1_x**2v1_y**2)**0.5)*((v2_x**2v2_y**2)**0.5))))except:angle_ 65535.if angle_ 180.:angle_ 65535.return angle_def hand_angle(hand_):获取对应手相关向量的二维角度,根据角度确定手势angle_list []#---------------------------- thumb 大拇指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[2][0])),(int(hand_[0][1])-int(hand_[2][1]))),((int(hand_[3][0])- int(hand_[4][0])),(int(hand_[3][1])- int(hand_[4][1]))))angle_list.append(angle_)#---------------------------- index 食指角度angle_ vector_2d_angle(((int(hand_[0][0])-int(hand_[6][0])),(int(hand_[0][1])- int(hand_[6][1]))),((int(hand_[7][0])- int(hand_[8][0])),(int(hand_[7][1])- int(hand_[8][1]))))angle_list.append(angle_)#---------------------------- middle 中指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[10][0])),(int(hand_[0][1])- int(hand_[10][1]))),((int(hand_[11][0])- int(hand_[12][0])),(int(hand_[11][1])- int(hand_[12][1]))))angle_list.append(angle_)#---------------------------- ring 无名指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[14][0])),(int(hand_[0][1])- int(hand_[14][1]))),((int(hand_[15][0])- int(hand_[16][0])),(int(hand_[15][1])- int(hand_[16][1]))))angle_list.append(angle_)#---------------------------- pink 小拇指角度angle_ vector_2d_angle(((int(hand_[0][0])- int(hand_[18][0])),(int(hand_[0][1])- int(hand_[18][1]))),((int(hand_[19][0])- int(hand_[20][0])),(int(hand_[19][1])- int(hand_[20][1]))))angle_list.append(angle_)return angle_listdef h_gesture(angle_list):# 二维约束的方法定义手势# fist five gun love one six three thumbup yeahthr_angle 65. #手指闭合则大于这个值大拇指除外thr_angle_thumb 53. #大拇指闭合则大于这个值thr_angle_s 49. #手指张开则小于这个值gesture_str Unknownif 65535. not in angle_list:if (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 0elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 1elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 2elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle):gesture_str 3elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle_s):gesture_str 4elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle_s):gesture_str 5elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str 6elif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str 8elif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str Pink Upelif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str Thumb Upelif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str Fuckelif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle_s) and (angle_list[4]thr_angle_s):gesture_str Princesselif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle_s) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle):gesture_str Byeelif (angle_list[0]thr_angle_s) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str Spider-Manelif (angle_list[0]thr_angle_thumb) and (angle_list[1]thr_angle_s) and (angle_list[2]thr_angle) and (angle_list[3]thr_angle) and (angle_list[4]thr_angle_s):gesture_str RocknRollreturn gesture_strdef hand_detect():global qglobal kill_all_flagglobal cam_imgbye_flag 0bye_time time.time()hand_jugg Nonegesture_str Nonewhile True:time.sleep(0.1)while q0:time.sleep(0.1)frame cv2.cvtColor(cam_img, cv2.COLOR_BGR2RGB)results hands.process(frame)if results.multi_handedness: for hand_label in results.multi_handedness:hand_juggstr(hand_label).split()[1] Handprint(hand_jugg) # cv2.putText(faceImg,hand_jugg,(50,200),0,1.3,(0,0,255),2)if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks: # mp_drawing.draw_landmarks(faceImg, hand_landmarks, mp_hands.HAND_CONNECTIONS)hand_local []for i in range(21):x hand_landmarks.landmark[i].x*frame.shape[1]y hand_landmarks.landmark[i].y*frame.shape[0]hand_local.append((x,y))if hand_local:angle_list hand_angle(hand_local)gesture_str h_gesture(angle_list)print(gesture_str) # cv2.putText(faceImg,gesture_str,(50,100),0,1.3,(0,0,255),2)if gesture_str Bye:if bye_flag 0:bye_flag 1elif bye_flag 1 and time.time() - bye_time 3:kill_all_flag 1q 1print(Good-Bye)else:bye_flag 1 else:Keyborad(hand_jugg,gesture_str)bye_flag 0hand_jugg Nonegesture_str Noneif q 1:breakif kill_all_flag 1:breakreturn def track():global qglobal kill_all_flagglobal cam_imgglobal left_pointglobal right_pointwhile True:time.sleep(0.1)while q0: time.sleep(0.05) gray cv2.cvtColor(cam_img,cv2.COLOR_BGR2GRAY)faceRects classifier.detectMultiScale(gray,scaleFactor1.2,minNeighbors3,minSize(32, 32))if len(faceRects):x,y,w,h faceRects[0]# 框选出人脸 最后一个参数2是框线宽度 # cv2.rectangle(faceImg,(x, y), (x w, y h), (0,255,0), 2)central_point xw/2 if central_point left_point:print(Right)Mouse(1)elif central_point right_point:print(Left)Mouse(2)else:Mouse(0)if q 1:print(S)breakif kill_all_flag 1:breakreturn def img_main():global qglobal kill_all_flagglobal cam_img thread_track threading.Thread(targettrack)thread_track.setDaemon(True)thread_track.start()thread_hand threading.Thread(targethand_detect)thread_hand.setDaemon(True)thread_hand.start() while True:time.sleep(0.1)while q0:cam_img cv2.flip(cap.read()[1],1)cv2.imshow(video_feed,cam_img)# 展示图像 if q 1: # 通过esc键退出摄像q 1print(暂停程序)cv2.destroyAllWindows()breakif cv2.waitKey(10) 27:kill_all_flag 1q 1print(结束程序)cv2.destroyAllWindows()breakif kill_all_flag 1:breakcap.release()print(全部退出)return def main():img_main() time.sleep(1)print(已退出所有程序)return if __name__ __main__: main() 附录列表的赋值类型和py打包 列表赋值 BUG复现 闲来无事写了个小程序 代码如下 # -*- coding: utf-8 -*-Created on Fri Nov 19 19:47:01 2021author: 16016 a_list [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] #print(len(a_list)) #b_list [,,,,,,,,,,,,,,,] c_list [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] #for i in range(16): if len(a_list):for j in range(16):a_list[j]str(a_list[j])_str(j)print(序号:,j)print(a_list:\n,a_list)c_list[j]a_listprint(c_list[0]:\n,c_list[0])print(\n) # b_list[j]a_list[7],a_list[8] # print(b_list[j])# 写入到Excel #print(c_list,\n) 我在程序中 做了一个16次的for循环 把列表a的每个值后面依次加上_和循环序号 比如循环第x次 就是把第x位加上_x 这一位变成x_x 我在输出测试中 列表a的每一次输出也是对的 循环16次后列表a应该变成[‘0_0’, ‘1_1’, ‘2_2’, ‘3_3’, ‘4_4’, ‘5_5’, ‘6_6’, ‘7_7’, ‘8_8’, ‘9_9’, ‘10_10’, ‘11_11’, ‘12_12’, ‘13_13’, ‘14_14’, ‘15_15’] 这也是对的 同时 我将每一次循环时列表a的值 写入到空列表c中 比如第x次循环 就是把更改以后的列表a的值 写入到列表c的第x位 第0次循环后 c[0]的值应该是[‘0_0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘10’, ‘11’, ‘12’, ‘13’, ‘14’, ‘15’] 这也是对的 但是在第1次循环以后 c[0]的值就一直在变 变成了c[x]的值 相当于把c_list[0]变成了c_list[1]…以此类推 最后得出的列表c的值也是每一项完全一样 我不明白这是怎么回事 我的c[0]只在第0次循环时被赋值了 但是后面它的值跟着在改变 如图 第一次老出bug 赋值以后 每次循环都改变c[0]的值 搞了半天都没搞出来 无论是用appen函数添加 还是用二维数组定义 或者增加第三个空数组来过渡 都无法解决 代码改进 后来在我华科同学的指导下 突然想到赋值可以赋的是个地址 地址里面的值一直变化 导致赋值也一直变化 于是用第二张图的循环套循环深度复制实现了 代码如下 # -*- coding: utf-8 -*-Created on Fri Nov 19 19:47:01 2021author: 16016 a_list [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] #print(len(a_list)) #b_list [,,,,,,,,,,,,,,,] c_list [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] #for i in range(16): if len(a_list):for j in range(16):a_list[j]str(a_list[j])_str(j)print(序号:,j)print(a_list:\n,a_list)for i in range(16):c_list[j].append(a_list[i])print(c_list[0]:\n,c_list[0])print(\n) # b_list[j]a_list[7],a_list[8] # print(b_list[j])# 写入到Excel print(c_list,\n) 解决了问题 优化 第三次是请教了老师 用copy函数来赋真值 代码如下 # -*- coding: utf-8 -*-Created on Fri Nov 19 19:47:01 2021author: 16016 a_list [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] #print(len(a_list)) #b_list [,,,,,,,,,,,,,,,] c_list [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] #for i in range(16): if len(a_list):for j in range(16):a_list[j]str(a_list[j])_str(j)print(序号:,j)print(a_list:\n,a_list)c_list[j]a_list.copy()print(c_list[0]:\n,c_list[0])print(\n) # b_list[j]a_list[7],a_list[8] # print(b_list[j])# 写入到Excel #print(c_list,\n) 同样能解决问题 最后得出问题 就是指针惹的祸 a_list指向的是个地址 而不是值 a_list[i]指向的才是单个的值 copy()函数也是复制值而不是地址 如果这个用C语言来写 就直观一些了 难怪C语言是基础 光学Python不学C 遇到这样的问题就解决不了 C语言yyds Python是什么垃圾弱智语言 总结 由于Python无法单独定义一个值为指针或者独立的值 所以只能用列表来传送 只要赋值是指向一个列表整体的 那么就是指向的一个指针内存地址 解决方法只有一个 那就是将每个值深度复制赋值子列表内的元素提取出来重新依次连接 或者用copy函数单独赋值 如图测试 部分代码 # -*- coding: utf-8 -*-Created on Sat Nov 20 16:45:48 2021author: 16016 def text1():A[1,2,3]B[[],[],[]]for i in range(len(A)):A[i]A[i]iB[i]Aprint(B)def text2():A[1,2,3]B[[],[],[]]A[0]A[0]0B[0]Aprint(B)A[1]A[1]1B[1]Aprint(B)A[2]A[2]2B[2]Aprint(B)if __name__ __main__:text1()print(\n)text2()py打包 Pyinstaller打包exe包括打包资源文件 绝不出错版 依赖包及其对应的版本号 PyQt5 5.10.1 PyQt5-Qt5 5.15.2 PyQt5-sip 12.9.0 pyinstaller 4.5.1 pyinstaller-hooks-contrib 2021.3 Pyinstaller -F setup.py 打包exe Pyinstaller -F -w setup.py 不带控制台的打包 Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包 打包exe参数说明 -F打包后只生成单个exe格式文件 -D默认选项创建一个目录包含exe文件以及大量依赖文件 -c默认选项使用控制台(就是类似cmd的黑框) -w不使用控制台 -p添加搜索路径让其找到对应的库 -i改变生成程序的icon图标。 如果要打包资源文件 则需要对代码中的路径进行转换处理 另外要注意的是 如果要打包资源文件 则py程序里面的路径要从./xxx/yy换成xxx/yy 并且进行路径转换 但如果不打包资源文件的话 最好路径还是用作./xxx/yy 并且不进行路径转换 def get_resource_path(relative_path):if hasattr(sys, _MEIPASS):return os.path.join(sys._MEIPASS, relative_path)return os.path.join(os.path.abspath(.), relative_path) 而后再spec文件中的datas部分加入目录 如 a Analysis([cxk.py],pathex[D:\\Python Test\\cxk],binaries[],datas[(root,root)],hiddenimports[],hookspath[],hooksconfig{},runtime_hooks[],excludes[],win_no_prefer_redirectsFalse,win_private_assembliesFalse,cipherblock_cipher,noarchiveFalse)而后直接Pyinstaller -F setup.spec即可 如果打包的文件过大则更改spec文件中的excludes 把不需要的库写进去但是已经在环境中安装了的就行 这些不要了的库在上一次编译时的shell里面输出 比如 然后用pyinstaller --clean -F 某某.spec
http://www.zqtcl.cn/news/243129/

相关文章:

  • 杭州响应式网站案例建筑工程网站建站方案
  • 网站访客抓取国内网站搭建
  • 凡科网站做的好不好太原网页
  • 十堰商城网站建设国外效果图网站
  • 怎么登陆建设工程网站泉州网红
  • 哈尔滨队网站网页美工跨境电商是什么意思
  • 网站规划与建设课程推广型网站建设软件
  • 山东网站建设系统网站设计哪家更好
  • 网络推广有哪些网站网络推广公司联系昔年下拉
  • 长沙专业外贸建站公司百度提交网站入口网站
  • 西安网站搭建建设定制市场营销推广策略
  • 用户等待网站速度公司网站怎么做站外链接
  • 设计新闻发布网站模板wonder audio wordpress
  • 教育与培训网站建设wordpress侧栏文章
  • 四川做网站的公司哪家好信誉好的赣州网站建设
  • seo外包网站网站的备案流程图
  • 学网站建设好么免费网页制作有哪些
  • 宁波公司网站开发招聘最便宜的视频网站建设
  • 找人做网站大概多少钱永州企业网站建设
  • 免费备案网站空间网站怎么做组织图
  • 四川省和城乡建设厅网站怎么做网站淘宝转换工具
  • 网站单页支付宝支付怎么做的排名优化公司口碑哪家好
  • 淄博网站制作服务推广做网站服务器配置
  • ppt做的好的有哪些网站有哪些广州品牌型网站建设
  • 怎么学做一件完整衣服网站网站 相对路径
  • 十大wordpress主题江门seo排名优化
  • 石家庄网站搭建定制在百度上如何上传自己的网站
  • 南宁建设厅官方网站福州中小企业网站制作
  • 模板网站建设平台昆山专业网站建设公司哪家好
  • 百度指数的数值代表什么网站建设优化的作用