xml地图|网站地图|网站标签 [设为首页] [加入收藏]
GUI之tkinter学习笔记之messagebox,基本数据类型
分类:编程

1.安装python的ied   pycharm(专业版勿汉化)

PostFromHelper 代码

 

2.运算符

public class FormItemModel
    {
        /// <summary>  
        /// 表单键,request["key"]  
        /// </summary>  
        public string Key { set; get; }
        /// <summary>  
        /// 表单值,上传文件时忽略,request["key"].value  
        /// </summary>  
        public string Value { set; get; }
        /// <summary>  
        /// 是否是文件  
        /// </summary>  
        public bool IsFile
        {
            get
            {
                if (FileContent == null || FileContent.Length == 0)
                    return false;

                if (FileContent != null && FileContent.Length > 0 && string.IsNullOrWhiteSpace(FileName))
                    throw new Exception("上传文件时 FileName 属性值不能为空");
                return true;
            }
        }
        /// <summary>  
        /// 上传的文件名  
        /// </summary>  
        public string FileName { set; get; }
        /// <summary>  
        /// 上传的文件内容  
        /// </summary>  
        public Stream FileContent { set; get; }
    }
    public class PostFromHelper
    {
        /// <summary>  
        /// 使用Post方法获取字符串结果  
        /// </summary>  
        /// <param name="url"></param>  
        /// <param name="formItems">Post表单内容</param>  
        /// <param name="cookieContainer"></param>  
        /// <param name="timeOut">默认20秒</param>  
        /// <param name="encoding">响应内容的编码类型(默认utf-8)</param>  
        /// <returns></returns>  
        public static string PostForm(string url, List<FormItemModel> formItems, CookieContainer cookieContainer = null, string refererUrl = null, Encoding encoding = null, int timeOut = 20000)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            #region 初始化请求对象  
            request.Method = "POST";
            request.Timeout = timeOut;
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
            request.KeepAlive = true;
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36";
            if (!string.IsNullOrEmpty(refererUrl))
                request.Referer = refererUrl;
            if (cookieContainer != null)
                request.CookieContainer = cookieContainer;
            #endregion

            string boundary = "----" + DateTime.Now.Ticks.ToString("x");//分隔符  
            request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
            //请求流  
            var postStream = new MemoryStream();
            #region 处理Form表单请求内容  
            //是否用Form上传文件  
            var formUploadFile = formItems != null && formItems.Count > 0;
            if (formUploadFile)
            {
                //文件数据模板  
                string fileFormdataTemplate =
                    "rn--" + boundary +
                    "rnContent-Disposition: form-data; name="{0}"; filename="{1}"" +
                    "rnContent-Type: application/octet-stream" +
                    "rnrn";
                //文本数据模板  
                string dataFormdataTemplate =
                    "rn--" + boundary +
                    "rnContent-Disposition: form-data; name="{0}"" +
                    "rnrn{1}";
                foreach (var item in formItems)
                {
                    string formdata = null;
                    if (item.IsFile)
                    {
                        //上传文件  
                        formdata = string.Format(
                            fileFormdataTemplate,
                            item.Key, //表单键  
                            item.FileName);
                    }
                    else
                    {
                        //上传文本  
                        formdata = string.Format(
                            dataFormdataTemplate,
                            item.Key,
                            item.Value);
                    }

                    //统一处理  
                    byte[] formdataBytes = null;
                    //第一行不需要换行  
                    if (postStream.Length == 0)
                        formdataBytes = Encoding.UTF8.GetBytes(formdata.Substring(2, formdata.Length - 2));
                    else
                        formdataBytes = Encoding.UTF8.GetBytes(formdata);
                    postStream.Write(formdataBytes, 0, formdataBytes.Length);

                    //写入文件内容  
                    if (item.FileContent != null && item.FileContent.Length > 0)
                    {
                        using (var stream = item.FileContent)
                        {
                            byte[] buffer = new byte[1024];
                            int bytesRead = 0;
                            while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) != 0)
                            {
                                postStream.Write(buffer, 0, bytesRead);
                            }
                        }
                    }
                }
                //结尾  
                var footer = Encoding.UTF8.GetBytes("rn--" + boundary + "--rn");
                postStream.Write(footer, 0, footer.Length);

            }
            else
            {
                request.ContentType = "application/x-www-form-urlencoded";
            }
            #endregion

            request.ContentLength = postStream.Length;

            #region 输入二进制流  
            if (postStream != null)
            {
                postStream.Position = 0;
                //直接写入流  
                Stream requestStream = request.GetRequestStream();

                byte[] buffer = new byte[1024];
                int bytesRead = 0;
                while ((bytesRead = postStream.Read(buffer, 0, buffer.Length)) != 0)
                {
                    requestStream.Write(buffer, 0, bytesRead);
                }

                ////debug  
                //postStream.Seek(0, SeekOrigin.Begin);  
                //StreamReader sr = new StreamReader(postStream);  
                //var postStr = sr.ReadToEnd();  
                postStream.Close();//关闭文件访问  
            }
            #endregion

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (cookieContainer != null)
            {
                response.Cookies = cookieContainer.GetCookies(response.ResponseUri);
            }

            using (Stream responseStream = response.GetResponseStream())
            {
                using (StreamReader myStreamReader = new StreamReader(responseStream, encoding ?? Encoding.UTF8))
                {
                    string retString = myStreamReader.ReadToEnd();
                    return retString;
                }
            }
        }
    }

  +,-,*,/  , **, //, %

使用方法

相关内容:

messagebox

  • 介绍
  • 使用

filedialog

  • 介绍
  • 使用

 

首发时间:2018-03-04 22:18


  判断某个东西是否在某个东西里面包含

 var formDatas = new List<FormItemModel>();
            //添加文件  
            formDatas.Add(new FormItemModel()
            {
                Key = "media",
                Value = "",
                FileName = filename,
                FileContent = File.OpenRead(filepath)
            });
            //提交表单  
            var result = PostFromHelper.PostForm(url, formDatas);

messagebox:

 

  in

 

介绍:messagebox是tkinter中的消息框、对话框

  not  in

使用:

导入模块:import tkinter.messagebox

选择消息框的模式:

提示消息框:【返回”ok”】图片 1

tkinter.messagebox.showinfo(消息框标题,提示内容)

消息警告框【返回”ok”】:图片 2

tkinter.messagebox.showwarning(消息框标题,警告内容)

错误消息框【返回”ok”】:图片 3

tkinter.messagebox.showerror(消息框标题,错误提示内容)

对话框:

  • 询问确认对话框[返回”yes”,”no”]:图片 4

    tkinter.messagebox.askquestion(消息框标题,提示内容)
    
  • 确认/取消对话框[返回True False]:图片 5

    tkinter.messagebox.askokcancel(消息框标题,提示内容)
    
  • 是/否对话框【返回True False】:图片 6

    tkinter.messagebox.askyesno(消息框标题,提示内容)
    
  • 重试/取消对话框:【返回值:True False】图片 7

    tkinter.messagebox.askretrycancel(标题,提示内容)
    
  • 是否取消对话框: 【返回值:是:True  否:False 取消:None】:
    tkinter.messagebox.askyesnocancel(标题,提示内容)
    

 

from tkinter import *
import tkinter.messagebox
def info_warn_err():
    a=tkinter.messagebox.showinfo("我的标题","我的提示1")
    print(a)
    a=tkinter.messagebox.showwarning("我的标题","我的提示2")
    print(a)
    a=tkinter.messagebox.showerror("我的标题", "我的提示3")
    print(a)
def func2():
    a=tkinter.messagebox.askyesno("我的标题","我的提示1")
    print(a)
    a=tkinter.messagebox.askokcancel("我的标题","我的提示2")
    print(a)
    a=tkinter.messagebox.askquestion("我的标题","我的提示3")
    print(a)
    a=tkinter.messagebox.askretrycancel("我的标题","我的提示4")
    print(a)
    a=tkinter.messagebox.askyesnocancel("我的标题","我的提示5")
    print(a)
    #这里用作演示如何使用对话框
    if tkinter.messagebox.askyesno("我的标题", "确认关闭窗口吗!"):
        root.destroy()

root=Tk()
btn=Button(root,text="信息、警告、错误消息框",command=info_warn_err)
btn1=Button(root,text="对话框",command=func2)
btn.pack()
btn1.pack()

root.mainloop()

 

filedialog:

 

介绍:filedialog是tkinter中的文件对话框图片 8

使用:

导入模块:import tkinter.filedialog

选择文件对话框的格式:

  • tkinter.filedialog.asksaveasfilename():选择以什么文件名保存,返回文件名
  • tkinter.filedialog.asksaveasfile():选择以什么文件保存,创建文件并返回文件流对象
  • tkinter.filedialog.askopenfilename():选择打开什么文件,返回文件名
  • tkinter.filedialog.askopenfile():选择打开什么文件,返回IO流对象
  • tkinter.filedialog.askdirectory():选择目录,返回目录名
  • tkinter.filedialog.askopenfilenames():选择打开多个文件,以元组形式返回多个文件名
  • tkinter.filedialog.askopenfiles():选择打开多个文件,以列表形式返回多个IO流对象

 

import tkinter.filedialog
from tkinter import *
def func1():
    a=tkinter.filedialog.asksaveasfilename()#返回文件名
    print(a)
    a =tkinter.filedialog.asksaveasfile()#会创建文件
    print(a)
    a =tkinter.filedialog.askopenfilename()#返回文件名
    print(a)
    a =tkinter.filedialog.askopenfile()#返回文件流对象
    print(a)
    a =tkinter.filedialog.askdirectory()#返回目录名
    print(a)
    a =tkinter.filedialog.askopenfilenames()#可以返回多个文件名
    print(a)
    a =tkinter.filedialog.askopenfiles()#多个文件流对象
    print(a)
root=Tk()

btn1=Button(root,text="click",command=func1)

btn1.pack()

root.mainloop()

 

 


  结果是值

    算术运算

       a=10*10

    赋值运算

       a=a+!    a+=1

   

  结果是布尔值

    比较运算

      a=1>5

    逻辑运算

      a=1>6 or 1==1  

      a=1>6 and 1==1

    成员运算

      a="小"  in "小缠绵"

      a="小" not in "小缠绵"

 

3.基本数据类型

  数字    int

  -int
    将字符串转换为数字     

       a="123"
    print(type(a),a)    #<class 'str'> 123

    b=int(a)
    print(type(b),b)    #<class 'int'> 123

    num="0011"
    v=int(num,base=2)
    print(v)            #以二进制的形式 v=3

  

  - bit_length
    当前数字的二进制,至少用n位表示
    r=age.bit.length()

   

    age=2

    r=age.bit_lenght()

    print(r)  #2

  

  字符串   str  

 

  #首字母大写

test="alex"
v=test.capitalize() 
print(v)

 

#所有的变小写    casefold很多的未知的都可以改变
                            lower只能变化熟知的

v1=test.casefold()
print(v1)
v2=test.lower()
print(v2)

  

#设置宽度,并将内容居中
20 代指总长度,*空白位置填充,一个字符,可有可无

v3=test.center(20,"*")

  

#字符串中寻找子序列出现的次数,两个参数是起始位置和终止位置,可有可无

v4=test.count('l',1,4)

 

#判断以什么结尾/开头,两个参数是起始和终止,可有可无,输出结果为True or False

v5=test.endswith('ex',1,4)
v6=test.startswith('a')

#从开始往后找,找到第一个后,获取其位置

v7=test.find('ex')

  

#格式化,将一个字符串种的占位符替换为指定的值

test='I am {name},age {a}'
print(test)
v=test.format(name='Christian',a=26)
print(v)

 

test1='I am {0},age {1}'
print(test1)
v1=test1.format('C',19)
print(v1)

  

#字符串中是否只包含 字母和数字 结果为Ture False

v=test.isalpha()

  

#当前输入是否是数字

  #只判断数字

  test="二"
  v1=test.isdecimal() 

  #可以含有特殊字符,比如②  

  v2=test.isdigit() 

  #可以含有汉字  

  v3=test.isnumeric()

  

#判断是否存在不可显示的转义字符,若没有,输出ture,否则false   

  test="ssfsgghht"
  v=test.isprintable()
  print(v)

  #输出False

  

#判断是否全是空格,是输出Ture,否则False

  test=' '
  v=test.isspace()
  print(v)

  #输出  Ture

  

#判断是否是标题(标题每个单词的首字母都是大写)
#转换为标题  

  

   test='dafgg gsgh hfsfs'

  v1=test.istitle()      
  print(v1)       #输出V1为False
  v2=test.title()
  print(v2)      #输出v2为Dafgg Gsgh Hfsfs
  v3=v2.istitle()
  print(v3)    #输出v3为 Ture

 

 

#将字符串中的每一个元素按照指定分隔符进行拼接

  test="你是风儿我是沙"
  print(test)    #你是风儿我是沙
  t=' '
  v1=t.join(test)
  v2='_'.join(test)
  print(v1)    #你 是 风 儿 我 是 沙
  print(v2)  #你_是_风_儿_我_是_沙

  

#设置内容宽度,并将内容居左,居中,居右显示

#将内容居中

  

  test="alxe"
  v=test.center(20,"中")  #20代指总长度,空白未知填充一个字符,可有可无
  print(v)    #中中中中中中中中alxe中中中中中中中中

本文由澳门新葡亰手机版发布于编程,转载请注明出处:GUI之tkinter学习笔记之messagebox,基本数据类型

上一篇:更新代码,GUI之tkinter学习笔记1控件的介绍及使用 下一篇:set等深浅拷贝的问题记录,Python基础定义
猜你喜欢
热门排行
精彩图文