精华内容
下载资源
问答
  • pycharm 显示当前 python 文件下的函数和类的列表

    千次阅读 多人点赞 2019-06-09 16:22:36
    显示每个py文件里面的类和方法,方便快速跳转。 方法一(推荐): 左侧 project 工具栏窗口顶部那个齿轮有个 show member 选项,默认是不开的,勾选后 py 文件会显示内部定义的 class 和 method 每个文件可以自由...

    显示每个py文件里面的类和方法,方便快速跳转。
    方法一(推荐):
    左侧 project 工具栏窗口顶部那个齿轮有个 show member 选项,默认是不开的,勾选后 py 文件会显示内部定义的 class 和 method
    每个文件可以自由选择折叠还是展开
    在这里插入图片描述

    方法二:
    只能对选择某个文件来展开
    在这里插入图片描述

    展开全文
  • 参考:https://blog.csdn.net/Anakin6174/article/details/91354115
    展开全文
  • 一、python的format函数 还在用%吗?快学会使用format吧!!!好处大大的有: 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型; 2.单个参数可以多次输出,参数顺序可以不相同; 3.填充方式十分灵活,...

    一、python的format函数
    还在用%吗?快学会使用format吧!!!好处大大的有:
    1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型;
    2.单个参数可以多次输出,参数顺序可以不相同;
    3.填充方式十分灵活,对齐方式十分强大;
    4.官方推荐用的方式,%方式将会在后面的版本被淘汰;
    所以看完这篇文章后你又进击了一步:
    再说一句,我以前也一直使用%,这是在学习C语言的时候留下的“坏习惯”,当时就觉的很不方便。当然知识是需要活学活用的,%也有它的一点点好处,看情况使用,但是一般情况下在python3中使用format是没有错的,它也是2和3很大的一个区别,好啦看看基本的format使用,学会了一般情况都能应付了。
    通过关键字输出:

    print('{学习}使我{快乐}'.format(学习='学习',快乐='痛苦'))
    study = {'语言':'python','排名':'天下第一'}
    print('{语言} 是 {排名}'.format(**study))    #这里的***如何使用在前面的一篇文章中有专门的介绍
    
    #学习使我痛苦
    #python 是 天下第一
    

    通过位置输出:

    print('{0} @ {1}'.format('DH','nihaoa'))
    print('{1} @ {0}'.format('DH','nihaoa'))
    print('{} @ {}'.format('DH','nihao'))        #如果你是按顺序排列,则可以不用填写序号
    
    #DH @ nihaoa
    #nihaoa @ DH
    #DH @ nihao
    

    使用特殊字符 ^<>来填充和对齐,分别表示居中、左对齐、右对齐,后面的数字表示填充:

    print('你好 {:^10}'.format('python'))
    print('你好 {:<10}'.format('python'))
    print('你好 {:>10}'.format('python'))
    print('你好 {:@<10}'.format('python'))
    print('你好 {:@>10}'.format('python'))
    
    #你好   python
    #你好 python
    #你好     python
    #你好 python@@@@
    #你好 @@@@python
    

    精度和类型f:

    print('{:.1f}'.format(3.1415926))
    print('{:.5f}'.format(3.1415926))
    
    #3.1
    #3.14159
    

    进制的转化,b o d x 分别表示二、八、十、十六进制:

    print('{:b}'.format(100))
    print('{:o}'.format(100))
    print('{:d}'.format(100))
    print('{:x}'.format(100))
    
    #1100100
    #144
    #100
    #64
    

    针对与数字可以使用:千分位分隔符:

    print('{:,}'.format(123456712))
    print('{:,}'.format(1234567123456))
    
    #123,456,712
    #1,234,567,123,456
    

    二、python中*的作用

    传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:``*`` ** 。 
    调用函数时使用* ** 
    test(*args)* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3)test(**kwargs)** 的作用则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {'a':1,'b':2,'c':3} ,那这个代码就等价于 test(a=1,b=2,c=3) 。 
    定义函数参数时使用* ** 
    def test(*args): 
        ...定义函数参数时 * 的含义又要有所不同,在这里 *args 表示把传进来的位置参数都装在元组 args 里面。比如说上面这个函数,调用 test(1, 2, 3) 的话, args 的值就是 (1, 2, 3): 
    def test(**kwargs): 
        ...类似的, ** 就是针对关键字参数和字典的了。 调用 test(a=1,b=2,c=3) 的话, kwargs 的值就是 {'a':1,'b':2,'c':3} 了。 
    普通的参数定义和传递方式和 * 们都可以和平共处,不过显然 * 必须放在所有位置参数的最后,而 ** 则必须放在所有关键字参数的最后,否则就要产生歧义了。
    

    三、Python列表推导式和生成器表达式的异

    和列表一样, 列表推导式 也采用方括号[]表示,并且用到了一个简写版的for循环,第一部分是一个生成结果列表元素的表达式,第二部分是一个输入表达式上的循环。阅读理解列表表达式的推荐做法是先从里面的for循环开始,向右查看是否有if条件,然后将推导式开始的那个表达式映射到每一个匹配的元素上去。

    >>> even_numbers = [x for x in range(10) if x%2 == 0]
    >>> even_numbers
    [0,2,4,6,8]
     
    

    以上例子展示了使用if语句来过滤元素。
    Python还支持另外一种和列表表达式类似的结构,叫做生成器表达式(generator expression),除了它有一种称之为“惰性计算”的特点以外,它和列表推导式的用法基本一致。它的工作方式是每次处理一个对象,而不是一口气处理和构造整个数据结构,这样做的潜在优点是可以节省大量的内存。

    >>> even_numbers = (x for x in range(10000) if x%2 == 0)
    >>> even_numbers
    <generator object at 0x....>
    

    enumerate()是一个同时能让你迭代和计数的内置函数,而for循环自身只能迭代而没办法计数:

    >>> data = [123,"abc",3.14]
    >>> for i in enumerate(data):
    ...     print i
    ...
    (0, 123)
    (1, 'abc')
    (2, 3.14)
    

    四、pycharm运行和调试不显示结果

    刚在虚拟机里面安装了pycharm,配置(setting)完后,新建一个py文件,键入"hello world",竟然没有结果,虽然运行成功。pycharm太不友好了吧!

    在这里插入图片描述

    然后开始找问题:
    1:文件名的问题。
    2:pyqt的auto选项,试了一下没反应。

    在这里插入图片描述

    3:版本问题,我check了最新版应该没问题,再装一次太麻烦了,也没有改。
    4:还有禁掉pycharm网络的问题。
    原来是选择的python.exe的问题。选择了错误的python.exe路径,导致的错误。还是这个靠谱。

    在这里插入图片描述

    这里可能有很多个路径,我是安装了anaconda,没有直接安装python,所以这里在选择路径时出现了错误。第一次使用anaconda,哎!!你可以一个一个的试试,应该是这个问题

    在这里插入图片描述
    调试也不会有问题了,如果你不能显示,应该是这个问题。

    五、python3遍历目录查找文件
    一直有一部分软件,他们的主要功能就是方便用户查找本地文件位置。python当然也可以完成这项功能,所以我写了一个简短的代码。
    写完发现,python真的是一门简洁的语言啊!
    我完成这个功能主要就是用了os模块的功能,直接对操作系统作用。所以这里可能需要首先讲一下部分os操作的功能,方便大家能看懂。

    import os
     
    os.getcwd()           #获取当前工作目录,即当前工作路径
    os.chdir(path)        #切换路径(切换到path路径下)
    os.path.isdir(path)   #判断路径是否存在(判断path是否存在)
    os.listdir()          #列表形式列出指定目录下的所有文件以及其子文件
    os.curdir()			  #返回当前目录  ('.')
    os.sep				  #这个就是分隔符,为你使用该系统的分隔符 (windows '\';linux '/')
    os.pardir             #获取当前目录的父目录名称,字符串('..')
    

    以上就是下面代码所用的一些os操作(当然os远不止这些,需要了解你看以看看专门讲解os模块的文章,这里就不累述了)
    附上思路:
    一:创建列表保存所有主目录,用来依次访问。
    二:就像DFS一样,采用深度优先搜索,依次查找一个文件,如果它有子目录就继续查找,知道没有子目录。
    三:在二的基础上,每查找到一个子目录是,就切换到改路径,如果到底了,就获取它的父目录返回。
    四:肯定要用到的就是递归啦!!如果没找到,就返回父目录,切换路径到父目录,继续查找。
    附上代码:

    '''
    	author:daihui
    '''
    import os
     
    def finddir(startdir, target):
        try:
            os.chdir(startdir)  #切换目录
        except:
            return
        for new_dir in os.listdir(os.curdir):   #列表出该目录下的所有文件(返回当前目录'.')
            print(new_dir)
            if new_dir == target :
                print("当当当 找到啦!!!!!!!!!")
                print (os.getcwd() + os.sep + new_dir)
                exit()
            if os.path.isdir(new_dir) :  #判断路径是否存在
                finddir(new_dir, target)
                os.chdir(os.pardir)   #切换到当前目录的父目录
     
    # startdir = str(input('Please input startdir: '))
    # target = str(input('Please input target: '))
    lis = ['d:','e:','f:','g']  #更具具体需要,你可以在这里修改查找的目录
    target = r'要查找的文件名'
    for i in lis:
        startdir = i
        finddir(startdir, target)
    

    在这里插入图片描述

    展开全文
  • 同时,使用min(),max(),sum()函数对这个列表进行处理。看到这个题目的时候,觉得这也太简单了吧,直接range()和list()函数嵌套,该输出输出,该计算计算不就解决了嘛!但事实并非如此: #made by Jeffery #date ...

    目录

    一、问题描述(寻找解决方法的同学直接看“标题二”) 

    二、解决办法


    一、问题描述(寻找解决方法的同学直接看“标题二”) 

           在学习Python过程中遇到一个这样的问题,也算是一个小BUG吧。题目大意是这样的:创建列表,要求其中包含数字1-1000000(一百万),并输出所有数字。同时,使用min(),max(),sum()函数对这个列表进行处理。看到这个题目的时候,觉得这也太简单了吧,直接range()和list()函数嵌套,该输出输出,该计算计算不就解决了嘛!但事实并非如此:

    #made by Jeffery
    #date 2020.10.16
    numbers=list(range(1,1000001))
    for number in numbers:
        print(number)

    此情此景,我就想说一句“神奇!”,怎么会这样呢?随后我从以下几个方面分析问题 :

    1、是不是range()函数生成数字的范围有限度,不能超过1百万?

    2、是不是list()函数转换数字范围的时候有范围限制?

    3、是不是什么东西不够,不能存下这100万个数字?

    ············

    二、解决办法

    随后,我在网上查阅了相关资料,起初发现大家编码方式和我的不尽相同,但是似乎没有遇到和我一样的问题,所以我大胆猜测估计是什么东西存不下这么多数字才导致这个BUG产生的。经过我5min的调查后发现,是Pycharm软件的控制台周期缓冲区大小默认是1024KB,存不下这么多数(64位Python,数字“0”占用内存24个字节,数字“1”占用内存28个字节)如图所示:

     所以,我们人为将“1024”改为“10240”,这样就可以顺利将所有展示,如图所示:

    而“标题一”中所提到的问题解决代码如下:

    #made by Jeffery
    #10.17
    numbers=list(range(1,1000001)) #创建一个包含数字1-1000000的列表
    print(min(numbers))# 输出列表中的最小值
    print(max(numbers))#输出列表中的最大值
    print(sum(numbers))#对列表中的数字求和

    结果如下:

    展开全文
  • pycharm: 如何显示python文件下的函数和类的列表 一: 打开show munbers 点击project栏位上部分的齿轮按钮, 弹出设置窗口, 勾选Show Members, 勾选后, py文件会显示内部定义的class和method, 每个文件可折叠或...
  • pycharm 基本的快捷键使用

    千次阅读 2016-10-11 12:01:14
    CTRL Q: 在参数列表位置,显示可以输入的所有参数。 CTRL + 鼠标左键 快速调到指定函数 阅读 CTRL -: 折叠当前代码 CTRL +: 展开当前代码 CTRL SHIFT -: 折叠所有代码 CTRL SHIFT +: 展开所有代码 CTRL SHIFT...
  • 不定长数据接收ADC模块基于python的波形显示python串口读取插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也...
  • PyCharm中,你能够通过快捷键 Ctrl+F12 在当前被编辑文件中,快速导航(菜单功能 Navigate | File Structure),弹出菜单中,将显示当前被编辑文件的函数、类成员,你可以快速定位到相应的代码中 在弹出菜单中的...
  • 目录 1.快捷键 1.快捷键 显示当前python 文件下的函数和类的列表(即 Structure 视图):alt + 7
  • PyCharm的调试有两种显示模式,Debugger和Console。 Debugger处以列表形式,列出每个元素的内容;Console与直接Run输出类似。 Step Over、Step Into…区别 调试方式 快捷键 意义 Step Over F8 调试一行...
  • # 定义gameover函数 def gameover(playsurface, score): gameoverfont = pygame.font.Font('arial.ttf', 72) gameoversurf = gameoverfont.render('Game Over', True, greyColour) ...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

pycharm显示函数列表

pycharm 订阅