精华内容
下载资源
问答
  • 链接:Python教程_600集Python入门精通教程(懂中文就能学会) 文章目录[个人向]Python基础/使用技巧总结一、注释使用单行多行二、标准化输出三、转移字符四、模块、函数命名规则Import 注意事项函数添加注释...

    [个人向]Python基础/使用技巧总结

    环境:Pycharm 2019.1

    根据B站up黑马程序员的投稿视频所写的个人学习笔试

    链接:Python教程_600集Python从入门到精通教程(懂中文就能学会)

    一、注释的使用

    单行

    #+一个空格,一般跟在函数上方

    # 这是一个注释
    

    多行

    “”"三个引号,一般定义在文件头,类/函数定义下方

    """
    这是一个多行注释
    """
    

    在pycharm里格式有问题会提示黄色/灰色波浪线,如图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QMOvB2bm-1603162096169)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019211405974.png)]

    二、标准化输出

    weight = 8.5
    price = 6.5
    total = weight * price
    
    # 此处的(price,weight,total)相当于一个tuple元组
    # %.2f 表示保留小数点后两位
    print("苹果的单价是 %.2f 元/斤,购买了 %.2f 斤,需要支付 %.2f 元" % (price,weight,total))
    
    # 输出学号000001
    student_no=1
    print("我的学号是 %06d" % student_no)
    
    # 打印16进制的数字
    print("地址是 %x " %id(student_no))
    
    # 输出2.5%
    scala=0.25
    print("数据比例是 %.2f%%" %(scala*10))
    
    # 输出1,2,3三个随机数
    import random
    computer = random.randint(1,3)
    
    # print()结尾
    print(computer,end="---\n")
    
    

    三、转移字符

    # 转义字符
    # \t 在控制台输出一个制表符,保证文本垂直方向对齐
    # \n 在控制台输出一个换行符
    print("1\t2\t3")
    print("10\t20\t30")
    

    输出结果如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgnOy4u4-1603162096179)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019213430798.png)]

    四、模块、函数

    命名规则

    模块名/函数名是标识符,以数字、下划线、字母组成,不以数字开头

    Import 注意事项

    在import时便会执行模块里没有缩进的代码块

    例如在一个hm_九九乘法表的模块里定义一个multiple_table()函数

    def multiple_table():
        """
        函数写注释的方法,在函数使用时按ctrl+Q可显示此注释
        """
        row = 1
    
        while row <= 9:
    
            col: int = 1
    
            while col <= row:
                print("%d *%d = %d" % (col, row, col * row), end='\t')
                col += 1
    
            print("")
    

    在另一个py文件里导入时会默认执行该函数

    import hm_04_九九乘法表函数
    

    导入时就会在输出栏出现如下效果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqXSkp0x-1603162096181)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019214044764.png)]

    可以在一个叫hm_模块的模块里用__name__关键词来区分模块的使用部分和测试部分:

    def say_hello():
        print("你好你好")
    
    
    # 如果直接执行模块,
    if __name__ == "__main__":
        print(__name__)
        say_hello()
    
    # 在另一个文件import后say_hello()函数就不会执行了
    import hm_模块
    hm_模块.say_hello()
    

    注意事项:

    两个模块有同名方法,后导入覆盖先导入

    不建议使用import *,导致排查问题麻烦

    函数

    添加注释

    写好函数后光标放在函数名上点击小灯泡,选择 Insert documentation string stub加入函数注释

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YSPCnXqP-1603162096187)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019215237878.png)]

    def print_lines(char , times, rows):
        """
    
        :param char:
        :param times:
        :param rows:
        """
        row = 0
    
        while row < rows:
    
            print(char * times)
    
            row += 1
    

    其他函数

    • id(s):显示s的内存地址

    • hash(s):显示s(不可变类型)的hash值,dict中的key值是不可变的

    • 利用元组交换两个两个值 a,b = b,a

    • 指定函数默认参数必是参数最后一个

      例如:

      def sort(..... , reverse=False)
      
    • 多值参数

      def demo(num, *args, **person)"""
      *args是元组,**person是字典,在接受参数不确定时使用
      传入参数时,若要指定类型,用拆包语法:demo(*(),**{})
      """
      

    工程文件

    只有一个主程序执行入口,其他都是工具函数

    #! /usr/bin/python3  在主文件首航增加shebang符号(#!),使得不用指定解释器即可在终端运行.py文件
    

    基本的代码结构

    #! #路径
    import 模块
    全局变量(增加g_或者gl_前缀,如gl_name)
    定义类
    定义函数
    执行代码 if __name__ == "__main__":
    

    五、基本数据结构

    显示该结构下的自带函数

    name_list = []
    name_list.  #此处按下tab可以查看函数
    

    List

    定义空列表,再用name_list.按下tab来显示
    增加:.append(数据) list.append([1,2])  [....,[1,2]]
         .extend(列表) list.extend([1,2])  [....,1,2]
         .insert(索引,数据)
    删除:del 列表[索引]<-不建议使用
        .remove(数据)<-删除第一次出现的,且不存在会报错
        .pop(索引)<-无索引时删除末尾数据,有则删除指定索引的数据
    统计:.count(数据)
    排序:.sort()升序
         .reverse()逆序、反转
    获得索引:.index(数据)
    其他运算符:
        [1,2] + [3,4]  [1,2,3,4]
        [1,2] * 2  [1,2,1,2]
    

    Tuple

    元素不能修改,用()定义
    定义致函一个元素的元组(5,),只有index()和count()两个方法
    应用场景:标准化输出
    

    Dict

    key只能是字符串、数字、元组,必须唯一,相当于索引,不存在会报错
    删除用pop(索引)
    增加用update(字典)<-会覆盖相同索引的值
    min,max函数只针对key值比较
    
    person_info = {"name" : "小明",
                   "age" : 18,
                   "phone" : "12345"}
    
    # 遍历字典
    for key, value in person_info.items():
        print(f"{key} : {value}")
    
    for k in person_info:
        print("%s : %s" %(k, person_info[k]))
    

    遍历效果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eel7UBZG-1603162096192)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019223535911.png)]

    # 完整的for循环遍历:for 之后接 else
    students=[
        {"name": "阿土"},
        {"name": "小美"}
    ]
    
    # 在学生中搜寻指定的姓名
    # 完整的for循环遍历:for 循环运行完之后运行 else
    find_name = "小明"
    
    for stu in students:
    
        if stu["name"] == find_name:
    
            print("找到了 %s" %find_name)
    
            break
    
    else:
        print("找不到 %s" % find_name)
    

    字符串

    count():小字符串在大字符串中出现的次数
    index():字符串首次出现的索引,没找到会报错
    isXX():是否存在XX
    find(str,start=0,end=len(str)):字符串首次出现的索引,没找到会返回-1
    rfind():同上,从右边开始找
    capitalize():第一个字符大写
    title():每个单词首字母大写
    lower()/upper():转换大小写
    center(width):返回原字符串居中,并用空格填充到width
    
    strip():把左右两边的空白字符截掉
    partition(str):把字符分成三个部分形成一个tuple(str,str,str)
    split(str=" ",num):str为分隔符切分字符串,若num指定好,则仅分割num+1str,
                        str默认包含'\r','\t','\n'和空格
    " ".join(seq):以空格为分隔符,将seq中所有元素的字符串表示合并成一个新的字符串
    replace("A","B"):把字符串里的A换成B,但不会修改原有字符串
    字符串切片:str[0:end:步长]
            只切0~n-1str[0:-1:2] 逆序输出str[::-1]
    

    六、单例模式

    概念:让类创建的对象,在系统中只有唯一个实例

    实现步骤:

    1、定义一个类属性,初始值是None,用于记录单例对象的引用
    2、重写__new__方法
    3、如果类属性is None,调用父类方法分配空间,并在类属性中记录结果
    4、返回类属性中记录到的对象引用
    
    class MusicPlayer():
    
        # 记录第一个被创建对象的引用
        instance = None
    
        # 实现只执行一次初始化动作
        init_flag = False
    
        def __init__(self):
            # 1. 判断是否执行过初始化动作
            if MusicPlayer.init_flag:
                return
    
            # 2.如果没有执行过,执行初始化动作
            print("初始化播放器")
    
            # 3. 修改类属性的标记
            MusicPlayer.init_flag = True
    
        def __new__(cls, *args, **kwargs):
    
            # 1.判断类属性是否是空对象
            if cls.instance is None:
                # 2.调用父类方法为第一个对象分配空间
                cls.instance = super().__new__(cls)
    
            # 3.返回类属性保存的对象引用
            return cls.instance
    
    
    player1 = MusicPlayer()
    print(player1)
    
    player2 = MusicPlayer()
    print(player2)
    
    # 初始化方法因为执行了两次MusicPlayer(),会执行两次__init__方法
    

    执行效果,可知player1,player2的地址一样,即只实例化了一个对象

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KgrhVGhh-1603162096196)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019232112136.png)]

    new__方法是由Object基类提供的内置静态方法,作用是分配空间,返回对象的引用,作为第一个参数传递给__init

    重写方法:

    一定要return super().__new__(cls),否则解释器得不到对象引用,不会调用初始化方法
    一定要主动传递cls参数,__new__(cls)是一个类方法
    

    七、异常

    设计一个demo()程序,输入一个整数是否是8的因数,是则返回与之相乘得8的另一个因数,若不是则主动抛出异常:不能被8整除

    def demo():
        num = int(input("请输入一个整数:"))
    
        if ( 8 % num) == 0:
            return 8 / num
    
        # 若无法整除,捕获未知错误
        else:
            print("主动抛出异常")
            ex = Exception("不能被8整除")
            # 主动抛出异常,相当于自定义异常
            raise ex
    
    try:
        demo()
    except ZeroDivisionError:
        print("除零错误")
    except ValueError:
        print("请输入正确的整数")
    except Exception as result:  # 处理未知错误
        print("未知错误 %s" % result)
    else:  # 没有异常才会执行的代码
        print("没有异常才会执行的代码")
    finally:
        print("无论是否有异常,都会执行的代码")
    # 以下代码必然运行
    print("-" * 50)
    

    尝试上述代码:

    • 输入0

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bt7T10U0-1603162096198)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019235412647.png)]

    • 输入字符或者小数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mmGgvjau-1603162096200)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019235425043.png)]

    • 输入不是8因数

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1qTasZOn-1603162096203)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019235352647.png)]

    • 输入2

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4SErAZ2q-1603162096205)(C:\Users\KASUMI\AppData\Roaming\Typora\typora-user-images\image-20201019235514949.png)]

    八、文件的读写

    f1 = open("文件名","r")
    # r,w,a读取方式,r只读,w只写(会覆盖已有内容),a追加
    f2 = open("文件名","w")
    
    while True:
        text = f1.readline()
    
        if not text:
            break
    
        f2.write(text)
    
    f1.close()
    f2.close()
    

    九、面向对象

    • 三大特性:封装、继承、多态

    • 使用dir(demo())查看demo()所有的内置函数

    • class里(实例)方法的第一个参数是self,即solve(self),self : 访问对象的属性,调用其他对象的方法

    • 对象的内置方法:
      __init__(self):相当于构造函数
      __del__():析构函数
      __str__():返回对象的描述信息str,用print()输出,默认是对象的内存地址
      
    • 对象的私有方法/属性:

      __age, __secret__() 子类也无法访问或者使用,只有父类内的方法能够使用
      
    • is 和 ==的区别:

      is 和is not判断的是两者的内存地址是否相同,相当于id(a)==id(b)

    ​ == 判断值是否相等

    • 支持多继承,所有类都是Object的子类

      class C(A,B):
      	
          pass
      
      # 显示继承顺序,先A后B
      # 父类里有同名方法/属性时,继承第一个父类的方法/属性
      print(C.__mro__) 
      
    • 定义类方法@classmethod , 函数参数只有cls

      定义静态方法@staticmethod

      class Tool:
      
          count: int = 0
      
          @classmethod
          def show_tool_count(cls):
      
              print("工具对象的数量 %d" %cls.count)
      
          @staticmethod
          def use():
              # 不访问实例属性/类属性,直接用类名调用
              print("工具要使用")
      
          def __init__(self,name):
              self.name = name
      
              Tool.count += 1
      
    • 用类名获取类属性,实例对象可以改变对象的属性,但无法改变类属性

      Tool.show_tool_count()
      
      tool1 = Tool("斧头")
      print("工具对象的总数是 %d" % tool1.count)  # 结果为1
      Tool.show_tool_count()  # 结果为1
      
      tool1.count = 4
      print("工具对象的总数是 %d" % tool1.count)  # 结果为4
      Tool.show_tool_count()  # 结果为1
      
      tool2 = Tool("榔头")
      tool3 = Tool("水桶")
      print("工具对象的总数是 %d" % tool1.count)  # 结果为4
      Tool.show_tool_count()  # 结果为3
      Tool.use()
      
    展开全文
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 <br>1.1 Visual Studio开发环境安装与配置 2 <br>0001 安装Visual Studio 2005开发环境须知 2 <br>0002 配置合适Visual Studio 2005...
  • 实例142 身份证号15位升18位算法 实例143 歌德巴赫猜想算法实现 实例144 八皇后问题算法实现 实例145 百钱百鸡算法实现 实例146 韩信点兵算法实现 实例147 实现斐波纳契数列求和 实例148 求...
  • 全书分6篇23章,共计600个实例和600个经验技巧。每个实例都是经过作者精心筛选,具有很强实用性,其中一些实例是开发人员难于寻觅解决方案。  本书两卷共计1200个例子,包括了开发中各个方面最常用实例,...
  • 本书是第II卷,以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
  • 本卷共分6篇23章内容,共计600个实例经验技巧。每个实例都是作者精心筛选,具有很强实用性,其中一些是开发人员难于寻觅。 目 录 第1篇 ASP.NET快速入门篇 第1章 搭建ASP.NET开发环境 2 1.1 ASP.NET环境配置...
  • 实例142 身份证号15位升18位算法 实例143 歌德巴赫猜想算法实现 实例144 八皇后问题算法实现 实例145 百钱百鸡算法实现 实例146 韩信点兵算法实现 实例147 实现斐波纳契数列求和 实例148 求...
  • 实例142 身份证号15位升18位算法 实例143 歌德巴赫猜想算法实现 实例144 八皇后问题算法实现 实例145 百钱百鸡算法实现 实例146 韩信点兵算法实现 实例147 实现斐波纳契数列求和 实例148 求...
  • 实例091 统一上传文件名称大小 125 实例092 论坛中直接输出HTML脚本 126 实例093 统计帖子标题长度 127 实例094 计算论坛帖子字节数 128 实例095 实现帖子内容定位查找 129 实例096 去除帖子标题首尾...
  • 本书以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和...
  • 本书是第II卷,以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
  • 本书是第II卷,以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
  • 本书是第II卷,以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
  • 本卷共分6篇23章内容,共计600个实例经验技巧。每个实例都是作者精心筛选,具有很强实用性,其中一些是开发人员难于寻觅。 目 录 第1篇 ASP.NET快速入门篇 第1章 搭建ASP.NET开发环境 2 1.1 ASP.NET环境配置...
  • 本卷共分6篇23章内容,共计600个实例经验技巧。每个实例都是作者精心筛选,具有很强实用性,其中一些是开发人员难于寻觅。 目 录 第1篇 ASP.NET快速入门篇 第1章 搭建ASP.NET开发环境 2 1.1 ASP.NET环境配置...
  •  大量来自微软内部的技巧 内容简介  t-sql一直以来都是 sql server编程的基础。和传统的 t-sql书籍不同,本书以独特的 “技巧 ”形式来介绍知识点,涵盖了数据处理(增删改、视图、索引、存储过程、触发器等)、...
  • 本书是第I卷,本书以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Visual Basic进行程序开发各个方面知识和技巧。主要包括基础知识、窗体界面设计、控件应用等。全书分6篇20章,共计600...
  • 实例091 统一上传文件名称大小 125 实例092 论坛中直接输出HTML脚本 126 实例093 统计帖子标题长度 127 实例094 计算论坛帖子字节数 128 实例095 实现帖子内容定位查找 129 实例096 去除帖子标题首尾...
  • 全书分6篇20章,共计600个实例和600条经验技巧。每个实例都是作者精心筛选,具有很强实用性,其中一些实例是开发人员难于寻觅解决方案。  本书非常适合ASP.NET网站项目开发人员、ASP.NET初学者及编程爱好者...
  • 随着数据库技术自动化程度提高,DBA工作价值开始扩展更大层面,因此共享一些探路者心得变得尤为可贵。暴露其思维过程,是Web2.0时代技术圈子一大特点。在以前某些时代,有些工程师们仅仅把技术作为赚钱...
  • 全书分为7篇23章,共计600个实例,并附带600技巧。书中每个实例都是作者精心筛选,具有很强实用性,其中一些实例是开发人员难于寻觅解决方案。  本书两卷共计1200个例子,包括了开发中各个方面最常用...
  • 此“跑表”类使用多媒体定时器而真正提供精确 1 毫秒定时(1KB) 629,o024_timer.zip 这是一个VB6编写数码钟(4KB) 630,o023_clock.zip 指针式时钟(3KB) 631,o021_viewpw.zip 密码查看器(7...
  •  本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了C语言编程...
  • 全书分6篇23章,共计600个实例和600个经验技巧。每个实例都是经过作者精心筛选,具有很强实用性,其中一些实例是开发人员难于寻觅解决方案。  本书两卷共计1200个例子,包括了开发中各个方面最常用实例,...
  • 《C#开发实例大全(基础卷)》筛选、汇集了C#开发基础知识高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法顺序进行了分析解读。全书分6篇共25章,主要...
  • Transact-SQL 权威指南--详细书签版

    热门讨论 2013-02-04 13:25:19
    第4章开始深入介绍DLL、DML,其中详细讲解SELECT语句使用,以及视图、统计函数、运行和顺序,并涉及一些重要概念,如集、层次、光标和事务处理等,并说明了它们使用方法。第15章介绍存储过程和触发器,它...
  • 8.4.3 数据库具体设计工作中的技巧 136 8.5 规范化 137 8.5.1 起点 137 8.5.2 第一范式 138 8.5.3 第二范式 139 8.5.4 第三范式 140 8.5.5 规范化理论 141 8.6 层次关系的处理 143 8.6.1 层次关系的处理...
  • 本书以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和...
  • 本书以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和...

空空如也

空空如也

1 2 3 4
收藏数 67
精华内容 26
关键字:

从1写到600的技巧