zoukankan      html  css  js  c++  java
  • 初试Python语法小试牛刀之冒泡排序

      

      Python很火,心里很慌,没吃过猪肉,也要见见猪走路。

      看了几天Python的语法,大概初步了解了一点点,https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
      想综合起来练习一下Python的语法,就从最简答的冒泡排序开始吧。

     

      鉴于Python的灵活性,甚至可以不需要类,不需要main方法,仅仅写个方法然后执行方法就可以运行,
      以下简单尝试从类Class的角度来封装一个最最简单的方法,并通过main函数来指定调用

    # 自定义测试类
    class MyTestClass:
        def __init__(self,s):
            self.s = s
    
        def bubble_sort(self,s):
            #for i in range(len(s)):
            for i in range(0,len(s)):
                #for j in range(len(s)):
                for j in range(i+1,len(s)):
                    if s[i] < s[j]:
                        temp = s[i]
                        s[i] = s[j]
                        s[j] = temp
            return s
    
    
    
    # 定义main方法
    def main():
        # 测试排序
        s = [8, 9, 1, 3, 5, 7, 6]
        obj = MyTestClass(s)
    
        print('类实例的属性')
        print(obj.s)
    
        print('set排序之前的结果')
        print(s)
        obj.bubble_sort(s)
        print('set排序之后的结果')
        print(s)
        for i in range(len(s)):
            print(s[i])
    
    
    if __name__ == '__main__':
        main()

     

      运行结果

      

      东西手来还是折腾了一阵子的,冒泡排序本身没有任何可以说的,主要从语法角度来看待Python

      1,set集合,使用实例:s = [8, 0, 1, 3, 5, 7, 6]
        set数据,Python语法无需声明,直接使用(初始化即可),其元素是不可重复的。
      2,Python中函数第一个参数都是self,构造函数名称固定是__init__
      3,for循环遍历数组 for i in range(len(s)),遍历方式,if判断后面都要接冒号:,都跟传统的编程语言语法有一些差异。
        4,set集合赋值s[i] = X

      不得不服部分新人的学习能力,前段时间还在写C#,然后他自己觉得没啥意思,他的Leader安排他写Python作一些功能,然后哗哗啦啦就开始了,
      抽空交流之后发现人的Python已经熟练掌握了,正常的业务用Python实现起来毫无压力,不由得亚历山大,自己这点老本也吃不了几天了。

      记得2010年刚工作那会,部门就开始推广Python,云计算,那时候是谁愿意,公司提供资源学习,不强求成果,可惜当时无远见,拒绝了,现在想想是多么的血淋淋。
      虽然那时候对这些东西都没有概念,可见世界500强的领导也不是吃干饭的。
      曾经吹牛逼说,一门语言学会for循环,if else 判断之后就可以动手了,剩下的就是库函数的掌握以及技巧问题了,现在似乎该为当初吹的牛逼买单了。

      

      反思总结一下面对陌生技术的学习思路,更多的是一种道先行,把术放在后面,相信一开始都是从hello world入门的,而不是从迪杰斯特拉算法开始的。
      1,个人认为(仅仅是个人认为)搭环境没那么重要,环境自己搭有问题的话,可以先让人帮忙搭建起来,尽快尽快尽快动手,否则容易受挫,电脑玩的溜溜的人也不见得一开始是从背键盘字母,装系统开始的吧。
      2,先不要死磕概念和宏观上的东西,概念上的东西都是后面慢慢动手多了才理解的,在学校的时候,学了一点J2SE的语法,就开始死磕Java的那套SSH,最后第一份工作还是做了C#
      3,了解了最简单的语法之后,用自己认为最熟练最简单的方式来动手,记得当年死磕java中main函数的参数String[] args的含义,花了好大好大的功夫,实话说到目前也无果。
      4,想办法实践,尽管可能是工作中没有直接用到的,用A方法(语言)实现的东西,想办法用新学到的东西来实现一遍。

  • 相关阅读:
    C#+ArcEngine10.0+SP5实现鼠标移动动态显示要素属性信息
    C#中实现excel文件批量导入access数据表中
    C#子窗体闪烁问题解决
    C#打印代码运行时间
    TableLayoutPanel导致的闪屏问题
    线段余弦角+凸包算法
    ICommand相关知识
    批量导出access某表内容到word文档
    通过数组里的时间重新排序数组
    数组层级叠加
  • 原文地址:https://www.cnblogs.com/wy123/p/7436046.html
Copyright © 2011-2022 走看看