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方法(语言)实现的东西,想办法用新学到的东西来实现一遍。

初试Python语法小试牛刀之冒泡排序的更多相关文章

  1. python入门4(冒泡排序)

    在学习了最基本的python语法后,我们来实践一个最简单的冒泡排序,检验一下自己是否入门. def bubble_sort(lists): # 冒泡排序 count = len(lists) for ...

  2. python排序之二冒泡排序法

    python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...

  3. 对 Python 语法不够了解导致的 bug

    对 Python 语法不够了解导致的 bug. `in` '20' in '11264,6144,4096,3072,2048,1024,300,30' Out[7]: True a_list = ' ...

  4. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

  5. python语法快速入门(1)

    http://www.runoob.com/python/python-tutorial.html Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言 ...

  6. python语法笔记(四)

    1.对象的属性     python一切皆对象,每个对象都可能有多个属性.python的属性有一套统一的管理方案. 属性的__dict__系统     对象的属性可能来自于其类定义,叫做类属性:还可能 ...

  7. python语法-[with来自动释放对象]

    python语法-[with来自动释放对象] http://www.cnblogs.com/itech/archive/2011/01/13/1934779.html 一 with python中的w ...

  8. wxpython 支持python语法高亮的自定义文本框控件的代码

    在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimp ...

  9. Python语法的转义字符

    Python语法的转义字符 转义字符 说 明 \ 续行符 \n 换行符 \0 空  \t 水平制表符,用于横向跳到下一制表位 \'' 双引号 \' 单引号 \\ 一个反斜杠 \f 换页 \0dd 八进 ...

随机推荐

  1. webView 获取内容高度不准确的原因是因为你设置了某个属性

    不管是UIWebView 还是 WKWebView 这里 获取js属性 获取高度的方法 我就不一一细说了 ,本文最主要不说这个 ,网上有太多的方法 我最不摘几个 CGFloat webViewHeig ...

  2. Python全栈之路----hash函数

    hash函数: 一般翻译为“散列”或“哈希”,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可 ...

  3. Linux跨服务器发送文件

    在要发送的文件所在的目录下,输入下列命令 第一种: scp -r test.jar root@127.0.0.1:$(pwd)/test.jar 其中root为服务器账户名,127.0.0.1为要发送 ...

  4. python中datetime常用方法

    # 可运算的时间方法包 >>> import datetime >>> import time >>> res = datetime.dateti ...

  5. Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)

    1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重 ...

  6. python学习之路08——元组、集合

    一. 元组 1.概念 列表:是一种有序的集合 元组和列表的区别: ​ a.列表:[] 元组:() ​ b.列表中的元素可以进行增加和删除操作,但是,元组中的元素不能进行修改 ​ c.相同点:都是一种容 ...

  7. 【HDU5187】contest

    真的没有什么会写的东西了QAQ 原题: As one of the most powerful brushes, zhx is required to give his juniors n probl ...

  8. DataTable与DataSet之间的转换Class

    using System;using System.Collections.Generic;using System.Data;using System.Linq; namespace Convert ...

  9. winform中devexpress bindcommand无效的解决方法

    正常绑定,编译运行无报错,但无法执行command fluentAPI.BindCommand(commandButton, (x, p) => x.DoSomething(p), x => ...

  10. Java面向对象 第5节 抽象类和接口

    一.抽象类和抽象方法 区分抽象方法和普通方法1)当一个方法被abstract修饰时,该方法成为抽象方法2)抽象类所在的类必须定义为抽象类3)抽象方法不会有具体的实现,而是在抽象类的子类中通过方法重写进 ...