python学习贴

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

python学习贴

#1

帖子 dapanji » 2024年 1月 04日 10:52

学过一点python,属于入门级别
后面打算做些小项目,记录一下
包括安装和寻找代码,修改代码过程中的一些步骤
看图出奇迹,看基本面穷三代

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

Re: python学习贴

#2

帖子 dapanji » 2024年 1月 04日 10:55

首先是如何下载anaconda:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
注意,不要选最下面的版本安装,最新版本在中间

其次是下载完成后,如何升级
# 以管理员身份启动 Anaconda Prompt 后,
conda update conda # 升级 conda(升级 Anaconda 前必需)
conda update anaconda # 升级 anaconda
conda update spyder # 升级 spyder
conda update --all # 更新所有包,包括 Anaconda 和 conda
conda install <package> # 安装包
conda update <package> # 更新包
conda update -h # 其他尝试

这次还遇到一个新问题,安装完成后遇到spyder闪退
解决办法:用pip卸载pyzmq,重新安装对应版本的pyzmq
看图出奇迹,看基本面穷三代

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

Re: python学习贴

#3

帖子 dapanji » 2024年 1月 04日 10:56

自己的小项目分为如下几个小步骤:
1、摇人答题
2、答题后的小抽奖
3、建立题库
看图出奇迹,看基本面穷三代

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

Re: python学习贴

#4

帖子 dapanji » 2024年 1月 04日 10:58

滚动摇号的程序如下:

https://blog.csdn.net/Python_Matlab/art ... nt_index=2

from PyQt5.QtWidgets import QWidget, QDialog, QMessageBox, QButtonGroup
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QPixmap, QImage
from w import *
from dlg import Ui_Dialog
import random
import os


class CDialog(QDialog):
def __init__(self):
super(CDialog, self).__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.label.setScaledContents(True)
self.setWindowTitle('获奖人员')


class CWidget(QWidget):
def __init__(self):
super(CWidget, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
self.setWindowTitle('低空组抽奖软件')
self.ui.pushButton.clicked.connect(self.slot_control)
self.timer = QTimer()
self.timer.timeout.connect(self.rand_)
self.nameLst = os.listdir('./pic')
self.nameLst_moyu = os.listdir('./pic_moyu')
self.sPic = self.nameLst[0]
self.sPic_moyu = self.nameLst_moyu[0]
self.pics = []
self.pics_moyu = []
self.win4 = [] # 阳光普照
self.win3 = [] # 三等奖
self.win2 = [] # 二等奖
self.win1 = [] # 一等奖
self.win = [] # 特别奖
self.win_moyu = []
self.num = 0 # 抽奖次数
self.num_moyu = 0
self.dlg = CDialog()
self.ui.label.setScaledContents(True)
self.ui.label_2.setScaledContents(True)
self.ui.label_3.setScaledContents(True)
self.ui.label.setText("获奖人员")
self.ui.radioButton_3.setChecked(True)
self.ui.buttonGroup.setId(self.ui.radioButton, 0)
self.ui.buttonGroup.setId(self.ui.radioButton_2, 1)
self.ui.buttonGroup.setId(self.ui.radioButton_3, 2)
self.ui.buttonGroup.setId(self.ui.radioButton_4, 3)
self.ui.buttonGroup.setId(self.ui.radioButton_5, 4)
self.ui.buttonGroup.setId(self.ui.radioButton_6, 5)
self.ui.buttonGroup.setExclusive(True)
self.lblGrp = []
self.lblGrp.append(self.ui.label)
self.lblGrp.append(self.ui.label_2)
self.lblGrp.append(self.ui.label_3)
self.lblGrp.append(self.ui.label_4)
self.lblGrp.append(self.ui.label_5)
self.lblGrp.append(self.ui.label_6)
self.lblGrp.append(self.ui.label_7)
self.rand_() # 初始化
self.ui.pushButton_2.clicked.connect(self.reset)
看图出奇迹,看基本面穷三代

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

Re: python学习贴

#5

帖子 dapanji » 2024年 1月 04日 11:53

https://blog.csdn.net/weixin_39833509/a ... s/88700565

# coding:utf-8
import tkinter
import time
import threading
import random
class Choujiang:
#初始化魔术方法
def __init__(self):
#准备好界面
self.root = tkinter.Tk()
self.root.title('lowB版转盘')
self.root.minsize(600, 600)
# 声明一个是否按下开始的变量
self.isloop = False
self.newloop = False
#调用设置界面的方法
self.setwindow()
self.root.mainloop()

#界面布局方法
def setwindow(self):
#开始停止按钮
self.btn_start = tkinter.Button(self.root, text = '开始/停止', command = self.newtask,bg='gold')
self.btn_start.place(x=250, y=250, width=100, height=50)

self.btn1 = tkinter.Button(self.root, text='', bg='red')
self.btn1.config(font=("Courier", 50))
self.btn1.place(x=200, y=130, width=200, height=50)
self.girlfrends = list(range(1000))


def rounds(self):
# 判断是否开始循环
if self.isloop == True:
return

# 初始化计数 变量
i = 0
# 死循环
while True:
if self.newloop == True:
self.newloop = False
return

# 延时操作
time.sleep(0.1)
# 将所有的组件背景变为白色
r = random.choice(range(1000))
self.btn1['text'] = r


# 建立一个新线程的函数
def newtask(self):
if self.isloop == False:
# 建立线程
t = threading.Thread(target = self.rounds)
# 开启线程运行
t.start()
# 设置循环开始标志ask(self):nknewtas
self.isloop = True
elif self.isloop == True:
self.isloop = False
self.newloop = True



c = Choujiang()
看图出奇迹,看基本面穷三代

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

Re: python学习贴

#6

帖子 dapanji » 2024年 1月 04日 11:54

dapanji 写了:
2024年 1月 04日 11:53
https://blog.csdn.net/weixin_39833509/a ... s/88700565

# coding:utf-8
import tkinter
import time
import threading
import random
class Choujiang:
#初始化魔术方法
def __init__(self):
#准备好界面
self.root = tkinter.Tk()
self.root.title('lowB版转盘')
self.root.minsize(600, 600)
# 声明一个是否按下开始的变量
self.isloop = False
self.newloop = False
#调用设置界面的方法
self.setwindow()
self.root.mainloop()

#界面布局方法
def setwindow(self):
#开始停止按钮
self.btn_start = tkinter.Button(self.root, text = '开始/停止', command = self.newtask,bg='gold')
self.btn_start.place(x=250, y=250, width=100, height=50)

self.btn1 = tkinter.Button(self.root, text='', bg='red')
self.btn1.config(font=("Courier", 50))
self.btn1.place(x=200, y=130, width=200, height=50)
self.girlfrends = list(range(1000))


def rounds(self):
# 判断是否开始循环
if self.isloop == True:
return

# 初始化计数 变量
i = 0
# 死循环
while True:
if self.newloop == True:
self.newloop = False
return

# 延时操作
time.sleep(0.1)
# 将所有的组件背景变为白色
r = random.choice(range(1000))
self.btn1['text'] = r


# 建立一个新线程的函数
def newtask(self):
if self.isloop == False:
# 建立线程
t = threading.Thread(target = self.rounds)
# 开启线程运行
t.start()
# 设置循环开始标志ask(self):nknewtas
self.isloop = True
elif self.isloop == True:
self.isloop = False
self.newloop = True



c = Choujiang()
修改了一下,变成几个固定金额

# coding:utf-8
import tkinter
import time
import threading
import random
class lottery:
#初始化魔术方法
def __init__(self):
#准备好界面
self.root = tkinter.Tk()
self.root.title('票券抽奖')
self.root.minsize(600, 600)
# 声明一个是否按下开始的变量
self.isloop = False
self.newloop = False
#调用设置界面的方法
self.setwindow()
self.root.mainloop()

#界面布局方法
def setwindow(self):
#开始停止按钮
self.btn_start = tkinter.Button(self.root, text = '开始/停止', command = self.newtask,bg='gold')
self.btn_start.place(x=250, y=250, width=100, height=50)

self.btn1 = tkinter.Button(self.root, text='', bg='red')
self.btn1.config(font=("Courier", 50))
self.btn1.place(x=200, y=130, width=200, height=50)
self.girlfrends = list(range(1000))


def rounds(self):
# 判断是否开始循环
if self.isloop == True:
return

# 初始化计数 变量
i = 0
# 死循环
while True:
if self.newloop == True:
self.newloop = False
return

# 延时操作
time.sleep(0.001)
# 将所有的组件背景变为白色
r = random.choice(range(1000))
if r > 990:
prize = '500'
elif r > 970 and r <= 990:
prize = '400'
elif r > 940 and r <= 970:
prize = '300'
elif r > 900 and r <= 940:
prize = '200'
elif r > 500 and r <= 900:
prize = '100'
else:
prize = '50'
self.btn1['text'] = prize


# 建立一个新线程的函数
def newtask(self):
if self.isloop == False:
# 建立线程
t = threading.Thread(target = self.rounds)
# 开启线程运行
t.start()
# 设置循环开始标志ask(self):nknewtas
self.isloop = True
elif self.isloop == True:
self.isloop = False
self.newloop = True



c = lottery()
看图出奇迹,看基本面穷三代

头像
dapanji
帖子: 3035
注册时间: 2018年 1月 12日 16:41

Re: python学习贴

#7

帖子 dapanji » 2024年 1月 04日 15:18

安装mysql

https://blog.csdn.net/weixin_61275790/a ... /131175735

不成功,出现Install/Remove of the Service Denied,参考下文:
https://jingyan.baidu.com/article/0eb45 ... 9059e.html
看图出奇迹,看基本面穷三代

头像
雨落忘川
帖子: 1307
注册时间: 2019年 10月 02日 15:46

Re: python学习贴

#8

帖子 雨落忘川 » 2024年 1月 06日 23:25

dapanji 写了:
2024年 1月 04日 10:55
首先是如何下载anaconda:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
注意,不要选最下面的版本安装,最新版本在中间

其次是下载完成后,如何升级
# 以管理员身份启动 Anaconda Prompt 后,
conda update conda # 升级 conda(升级 Anaconda 前必需)
conda update anaconda # 升级 anaconda
conda update spyder # 升级 spyder
conda update --all # 更新所有包,包括 Anaconda 和 conda
conda install <package> # 安装包
conda update <package> # 更新包
conda update -h # 其他尝试

这次还遇到一个新问题,安装完成后遇到spyder闪退
解决办法:用pip卸载pyzmq,重新安装对应版本的pyzmq
去年下半年开始学习Python,新手小白,什么都没听说过,走一步摔一跤,遇到了数不清的问题。前一段,鸡爷建议我开一个帖子,专门来讨论Python使用中的问题。我其实是无从下手。没想到鸡爷亲力亲为了。
我遇到的问题都是最基础的问题,也是小白无法继续学习的障碍。我个人的理解也比较片面,有很多观点不正确,老师们莫觉得可笑。

首先,Python 是一种编译语言,可以编译出 翻译成让计算机识别的2进制 的一个工具
一种语言的使用,需要一个解释器,我的理解就是:一个能说Python 和 写Python 的环境
解释器 有很多,anaconda,minianaconda,pycharm,vscode 等等
pycharm 可以装中文包,让界面显示为中文界面,版本又分为 公共版和 专业版,专业版限时免费,后面好像是要收费的。
免费的公共版 好像是不能安装pyside6 ,而 vscode则可以安装这个。
vscode 自带中文界面
anaconda 的好处是 可以建立 很多个独立的虚拟环境,在虚拟 环境中建立一个个单独的项目,当然,环境建立之后,需要用到的库,都要安装在 这个环境下。而不是公共场所。(我因为这个原因,在前期安装yolov5的过程中,就被卡了无数次,进行不下去)
黑窗口里面安装 各种库的时候,用pip 这个东西。
pip 是什么?
pip是一个以Python计算机程序语言写成的软件包管理系统。
可以用pip 安装各种库,pip 自己也是可以升级更新的!有些库安装失败,是因为pip 的版本不够新,更新之后,就可以安装了。
pip 的安装命令是 在黑窗口中输入:pip install xxxx (你需要安装使用的东西)
在今天看鸡爷这个帖子之前,我用pip 安装了一堆东西,(因为总是失败,就换不同的学习视频,从新再来,跟着视频步骤再安装一遍),但是,从没有卸载过,导致,后面反复安装anaconda的时候,发现,后面使用的是最早安装的miniconda,又重复建立了好多个yolov5环境
pip卸载包的命令是“pip uninstall”,其基本用法是“pip uninstall xxxx”,其中,`xxxx`是要卸载的包的名称。

在使用Python 的过程中,会用到很多库。例如 OpenCV ,numpy ,pyautogui,等等,这是都是工具包。
最初的时候,我还在疑惑:为什么非要用到工具包?不用不适更高大上?最近学习改代码,昨天晚上才意识到:不用工具包还真不行!自己做一个项目,不用帮手的话,项目落地的时候,很有可能黄花菜都凉了! 做事情还是要讲究实效的。
看长做短,高抛低吸,日内做T,掌控心理!

头像
雨落忘川
帖子: 1307
注册时间: 2019年 10月 02日 15:46

Re: python学习贴

#9

帖子 雨落忘川 » 2024年 1月 08日 13:07

python 中有2个模拟鼠标键盘的库,pyautogui 和 pynput.在B站up主的测试下,pyautogui 的运行时间明显要长很多。但是,pynput里面的运用说明比较简单。我如果需要用到,鼠标移动轨迹的时长,移动轨迹的随机偏移,移动速度的动态变化,pynput 好像实现不了。
看长做短,高抛低吸,日内做T,掌控心理!

头像
雨落忘川
帖子: 1307
注册时间: 2019年 10月 02日 15:46

Re: python学习贴

#10

帖子 雨落忘川 » 2024年 1月 29日 17:10

0基础学个PYTHON。也是一路坎坷,有时候 也很想放弃
看长做短,高抛低吸,日内做T,掌控心理!

回复