python windows系统 源代码

python windows系统 源代码,第1张

一、python如何运行程序

首先说一下python解释器,它是一种让其他程序运行起来的程序。当你编写了一段python程序,python解释器将读取程序,并按照其中的命令执行,得出结果,实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层。

通俗来说,我们的计算机是基于二进制进行运算的,无论你用什么语言来写程序,无论你的程序写的多么简单或多么复杂,最终交给计算机运行的一定是 0或1,因为计算机只能识别0和1。

我们目前使用的大多数编程语言都是高级程序语言,也就是利于我们人类阅读的语言,要使我们编写的程序能够在计算机上跑起来,要经过一定的转换才可以,python程序大致的过程应该是这样:

源代码-->字节码-->pvm(虚拟机)-->机器码

可以到Python的官方网站下载python(http://www.python.org),通常包括解释器、库文件及简单的编码环境(IDLE)。把源代码编译成字节码其实是为了程序更节省时间,如果源代码没有变动,那么运行程序时会直接从字节码读取,加快速度,把字节码放到虚拟机去解释,可以更好的跨平台运行,最后转换成机器码。

二、Windows系统下搭建python编程环境。

1、进入Python官网http://www.python.org,在“Downloads”下拉菜单中选择相应的 *** 作系统,我们选择windows。

2、这里有32位和64位版本,要和自己的电脑系统相对应。

3、安装刚才已经下载下来的安装包, 安装过程下图所示,使用默认配置,选择“Install Now”,勾选下面的Add Python3.5 to PATH,然后就是一直next,直到完成。

三、认识编程环境

1、在开始运行处运行命令cmd,进行dos模式,输入python,即可进行python的交互式环境。

2、进行到IDLE界面

3、交互式界面可以用于简单的学习,编写较大程序时应到具体的python文件中,python文件默认的后缀为.py,我们可以新建文本文件,然后把后缀扩展名改为.py,然后

最后选择菜单中的Run下的run module即可运行,快捷键为F5。

下面是完整程序,MS VC++ 6.0 编译器。

主要用途,用鼠标点击调节 RGB 数值,椭圆里显示 对应的颜色。

程序里有多余的码,你可以删去。(一个多余是试验鼠标移动时连续显示坐标数值,还有一个多余部分是调用Vfw32.lib播放一个avi视频。)

// clshow_color.cpp

#include <Afxwin.h>

#include <math.h>

// #include <Vfw.h>

// #pragma comment (lib, "Vfw32.lib")

#define DEBUG 1

HWND hWndMain

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)

BOOL InitWindowsClass(HINSTANCE hInstance)

BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)

char one_line[80]

int len,NN

LPTSTR argv

RECT RectR, RectG, RectB, RectX

int RectDy,RectW,RectH

int x_r=495,x_g=495,x_b=495,x_shift=100

long int v_r,v_g,v_b

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)

{

MSG Msg

int i

RectDy = 50 RectW = 400 RectH = 30

RectR.left = 0 RectR.right=RectW RectR.bottom=200 RectR.top = RectR.bottom + RectH

RectG.left = 0 RectB.left = 0

RectG.right=RectW RectB.right=RectW

RectG.bottom=RectR.bottom + RectDyRectB.bottom=RectG.bottom + RectDy

RectG.top = RectG.bottom + RectH

RectB.top = RectB.bottom + RectH

v_r = (x_r - x_shift) * 255 / RectW

v_g = (x_g - x_shift) * 255 / RectW

v_b = (x_b - x_shift) * 255 / RectW

if(!InitWindowsClass(hInstance))

return FALSE

if(!InitWindows(hInstance,nCmdShow))

return FALSE

ShowWindow(hWndMain,nCmdShow)

UpdateWindow(hWndMain)

while(GetMessage(&Msg,NULL,0,0))

{

TranslateMessage(&Msg)

DispatchMessage(&Msg)

}

return Msg.wParam

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

static long nXChar,nYChar,xInc,yInc

static int xClient, yClient // width height of client area

static int xClientMax // maximum width of client area

static int xChar, yChar // horizontal vertical scrolling unit

static int xPos,yPos // current horizontal vertical scrolling position

static int xMax,yMax // maximum horizontal scrolling position

SCROLLINFO si

HDC hdc

short x

TEXTMETRIC tm

PAINTSTRUCT ps

COLORREF color

HFONT font

HPEN hP1 // pen

HBRUSH hBr,hBrR,hBrG,hBrB

CPoint aP,mousePos

HWND h_wnd2

int i

char szlocation[100] //temp

CPoint pt,pt2// temp

RECT rect,rect2

switch(message)

{

case WM_LBUTTONDOWN: case WM_LBUTTONUP:

mousePos.x = LOWORD( lParam )

mousePos.y = HIWORD( lParam )

if (mousePos.x >= RectR.left+x_shift &&mousePos.x <= RectR.right+x_shift){

if (mousePos.y >RectR.bottom &&mousePos.y <RectR.top) x_r = mousePos.x

if (mousePos.y >RectG.bottom &&mousePos.y <RectG.top) x_g = mousePos.x

if (mousePos.y >RectB.bottom &&mousePos.y <RectB.top) x_b = mousePos.x

v_r = (x_r - x_shift) * 255 / RectW

v_g = (x_g - x_shift) * 255 / RectW

v_b = (x_b - x_shift) * 255 / RectW

ShowWindow(hwnd, SW_HIDE)

ShowWindow(hwnd, SW_SHOW)

UpdateWindow(hwnd)

}

return 0

case WM_CREATE:

hdc=GetDC(hwnd)

GetTextMetrics(hdc,&tm)

nXChar=tm.tmAveCharWidth

nYChar=tm.tmHeight

xInc=1yInc=1xChar=nXCharyChar=nYChar // for scroll window

ReleaseDC(hwnd,hdc)

xClientMax = 800

// h_wnd2 = MCIWndCreate(hwnd,NULL,0,"sylvtwt.avi") //Play

// MCIWndPlay(h_wnd2)// Play

return 0

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps) // begin paint

SetGraphicsMode(hdc,GM_ADVANCED)

SetWindowExtEx(hdc,700,400,NULL) // cx=700,cy=400 logical unit

SetViewportExtEx(hdc,600,400,NULL)

SetViewportOrgEx(hdc,x_shift,10,NULL)

SetMapMode(hdc,MM_ANISOTROPIC)

color=RGB(0,128,128)

hP1=CreatePen(PS_SOLID,0,color)

SelectObject(hdc,hP1)

hBrR = CreateSolidBrush( RGB(255,0,0))

hBrG = CreateSolidBrush( RGB(0,255,0))

hBrB = CreateSolidBrush( RGB(0,0,255))

hBr = CreateSolidBrush( RGB(200,200,200))

SelectObject(hdc,hBrR)

FillRect(hdc, &RectR, hBrR)

RectX=RectRRectX.left=x_r-x_shiftSelectObject(hdc,hBr)FillRect(hdc, &RectX, hBr)

SelectObject(hdc,hBrG)

FillRect(hdc, &RectG, hBrG)

RectX=RectGRectX.left=x_g-x_shiftSelectObject(hdc,hBr)FillRect(hdc, &RectX, hBr)

SelectObject(hdc,hBrB)

FillRect(hdc, &RectB, hBrB)

RectX=RectBRectX.left=x_b-x_shiftSelectObject(hdc,hBr)FillRect(hdc, &RectX, hBr)

font=CreateFont(

24,10,0,0, FW_NORMAL,0,0,0, ANSI_CHARSET,OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,NULL,"myfont"

)

SelectObject(hdc,font)

GetTextMetrics(hdc,&tm)

nYChar=tm.tmHeight

color=RGB(0,0,0)

sprintf(one_line,"R=%3d",v_r)

TextOut(hdc,RectR.right+10,RectR.bottom,one_line,strlen(one_line))

sprintf(one_line,"G=%3d",v_g)

TextOut(hdc,RectG.right+10,RectG.bottom,one_line,strlen(one_line))

sprintf(one_line,"B=%3d",v_b)

TextOut(hdc,RectB.right+10,RectB.bottom,one_line,strlen(one_line))

color = RGB(v_r,v_g,v_b)

hBr = CreateSolidBrush(color)

SelectObject(hdc,hBr)

Ellipse(hdc, 100, 30, 326, 144)

EndPaint(hwnd,&ps) // end paint

return 0L

case WM_SIZE:

yClient = HIWORD (lParam)

xClient = LOWORD (lParam)

yMax = max (0, 600 - yClient/yChar) // need to calculate

yPos = min (yPos, yMax)// current position not exceed the maximum

si.cbSize = sizeof(si)

si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS

si.nMin = 0si.nMax = yMaxsi.nPage = yClient / yChar

si.nPos = yPos

SetScrollInfo(hwnd, SB_VERT, &si, TRUE)

xMax = max (0, 2 + (1600 - xClient)/xChar)

xPos = min (xPos, xMax)

si.cbSize = sizeof(si)

si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS

si.nMin = 0

si.nMax = xMax

si.nPage = xClient / xChar

si.nPos = xPos

SetScrollInfo(hwnd, SB_HORZ, &si, TRUE)

UpdateWindow (hwnd)

return 0

case WM_VSCROLL:

switch(LOWORD (wParam))

{

case SB_PAGEUP:// User clicked shaft left of the scroll box.

yInc = -4 break

case SB_PAGEDOWN: // User clicked shaft right of the scroll box.

yInc = 4break

case SB_LINEUP: // User clicked the left arrow.

yInc = -1 break

case SB_LINEDOWN: // User clicked the right arrow.

yInc = 1 break

case SB_THUMBTRACK: // User dragged the scroll box.

yInc = HIWORD(wParam) - yPosbreak

default:

yInc = 0break

}

if (yInc = max(-yPos, min(yInc, yMax - yPos)))

{

yPos += yInc

ScrollWindowEx(hwnd, 0, -yChar * yInc,

(CONST RECT *) NULL, (CONST RECT *) NULL,

(HRGN) NULL, (LPRECT) NULL, SW_INVALIDATE)

si.cbSize = sizeof(si)

si.fMask = SIF_POS

si.nPos = yPos

SetScrollInfo(hwnd, SB_VERT, &si, TRUE)

UpdateWindow (hwnd)

}

return 0

case WM_HSCROLL:

switch(LOWORD (wParam))

{

case SB_PAGEUP:// User clicked shaft left of the scroll box.

xInc = -4 break

case SB_PAGEDOWN: // User clicked shaft right of the scroll box.

xInc = 4break

case SB_LINEUP: // User clicked the left arrow.

xInc = -1 break

case SB_LINEDOWN: // User clicked the right arrow.

xInc = 1 break

case SB_THUMBTRACK: // User dragged the scroll box.

xInc = HIWORD(wParam) - xPosbreak

default:

xInc = 0break

}

if (xInc = max(-xPos, min(xInc, xMax - xPos)))

{

xPos += xInc

ScrollWindowEx(hwnd, -xChar * xInc, 0,

(CONST RECT *) NULL, (CONST RECT *) NULL,

(HRGN) NULL, (LPRECT) NULL, SW_INVALIDATE)

si.cbSize = sizeof(si)

si.fMask = SIF_POS

si.nPos = xPos

SetScrollInfo(hwnd, SB_HORZ, &si, TRUE)

UpdateWindow (hwnd)

}

return 0

case WM_DESTROY:

PostQuitMessage(0)

return 0

default:

return DefWindowProc(hwnd,message,wParam,lParam)

}

}

BOOL InitWindowsClass(HINSTANCE hInstance)

{

WNDCLASS wndclass

wndclass.cbClsExtra=0

wndclass.cbWndExtra=0

wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH)

wndclass.hCursor=LoadCursor(NULL,IDC_ARROW)

wndclass.hIcon=LoadIcon(NULL,"END")

wndclass.hInstance=hInstance

wndclass.lpfnWndProc=WndProc

wndclass.lpszClassName="Windows Fill"

wndclass.lpszMenuName=NULL

wndclass.style=CS_HREDRAW|CS_VREDRAW

return(RegisterClass(&wndclass))

}

BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)

{

HWND hWnd

hWnd=CreateWindow(

"Windows Fill",

"Show_color",

WS_OVERLAPPEDWINDOW | WS_SYSMENU | WS_BORDER | WS_HSCROLL | WS_VSCROLL,

100,100,800,400,

NULL,

NULL,

hInstance,

NULL

)

if(!hWnd)

return FALSE

hWndMain=hWnd

ShowWindow(hWnd,nCmdShow)

UpdateWindow(hWnd)

return TRUE

}

可以通过GitHub源代码pingbai在计算机中检查计算器的源代码。具体 *** 作方式如下:

1、进入GitHub的Microsoft个人问题主页,如下图所示。

2、搜索计算器,如下图所示。

3、进入计算器的项目主页,点击下载按钮下载源代码,如下图所示。

4、保存源压缩文件并用visual studio打开它。

扩展资料:

GitHub的Windows应用

GitHub 使用 git 分布式版本控制系统,而 git 最初是 LinusTorvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。

GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。

GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。

GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11491905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存