查看原文
其他

编程入门的姿势-5月8日微信群语音分享

苦叶子 开源优测 2022-11-13

点击上方蓝字“开源优测”一起玩耍

 

开头语

5月8日在微信群,语音分享了如何如何学习编程语言、并以python为例进行了分享相关经验,下面整理成文章共享给大家。

神马?还有微信群? 加入微信群正确姿势

  1. 加微信liyimin1912

  2. 拉你入微信群

  3. 每天大家交流软件测试相关话题

禁止任何形式的灌水、广告、绝杀伸手党。

收费么?单纯的测试交流群,禁止收费。

如何入门编程

  1. 掌握变量,基本数据类型定义

  2. 掌握判断语句、循环语句

  3. 掌握函数的定义、调用方法

  4. 掌握类的定义、调用方法

  5. 掌握常用的标准库

  6. 掌握一些常用的第三方开源库

  7. 掌握一些基本的数据结构和算法

  8. 了解一些设计模式或封装思想

python入门姿势

下面我们根据上节提到的入门方式来分享如何入门python。

浓缩就是精华,实践才是真道理。

学习时,不要东学一下,西搞一把,专注点。

  • 掌握变量,基本数据类型定义 不要管什么全局变量、局部变量。 用什么直接拿来就用,例如:

# 数值类型a = 1

# 字符串类aa = "it's string"

# 一维数组,在python里专用名词tuple, 元组
array = (1, 2, 3, 4)

# 列表, 即list
list_demo = [1, 2, "haha", "4", 5.5]

# 字典,即dict
dict_demo = {    
   "key_1": "value_1",    "key_2": "value_2"    }

先掌握上面的就够了,注意元组、列表、字典在定义时的符号区别,分布对应(), [], {}。

另外需要掌握的就是元组、列表、字典的操作方法:尤其是切片动作。

具体的请参见《python简明教程》, 看上个十遍八遍的,把示例练上个三五遍就够了。

其他的书暂时也不需要看太多。

  • 掌握判断语句、循环语句

a = 1

# 判断姿势1
if a == 1:    print "ok"else:    print "ni cai"

# 判断姿势2

if
a == 1:    print "ok1"
elif a == 0:    print "ok0"
else:    print "ni cai"

# 循环,先掌握一种姿势吧
array = (1, 2, 3, 4, 5)
for a in array:    print a    # 格式就是for ... in ...
  • 掌握函数的定义、调用方法

# 姿势一
def function_name(param1, param2):    return true  

# 变参方式,姿势二
def function_name(param1, *param2):    return true  

# 变参方式,姿势三
def function_name(param1, *param2, **argskw):    return true    

# 一次返回多个值
def function_name(param1, param2):    # 返回list、dict类似    return (1, 2, 3, 4)

看不懂?那就别看了, 好好的去点点点~~

  • 掌握类的定义、调用方法

class DemoClass:    def __init__(self):        print u"我是干初始化活的"                # 我们两个是类变量成员        self.a = 1        self.b = 2        # 我是类方法,干点加法动作    def sum(self, a=1, b=2):        self.a = a        self.b = b        return self.a + self.b        # 我是类方法,干点减法动作    def sum(self, a=1, b=2):        self.a = a        self.b = b        return self.a - self.b

先别去整什么继承啊,元类之类的,把上面的记住了,能用。就可以考虑去整个更复杂的功能实现实现了。

  • 掌握常用的标准库 至少以下几类标准库

  1. 字符串操作类 具体这里就不一一列举,大家需要掌握:

替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等

在《python简明教程》中按示例练吧

  1. IO读写

读取键盘输入:

Python提供了两个内置的函数来读取一行,从标准输入,默认情况下是来自键盘的文本。
这些函数包括:

  1. raw_input

  2. input

文件读写:

# 读当前目录的foo.txt文件
fo = open("foo.txt", "r+") # 读取10个 str = fo.read(10)
print "Read String is : ", str # 关闭文件
fo.close() # 写当前目录foow.txt
fo = open("foow.txt", "wb") # 写入字符串
fo
.write( "Python is a great language.Yeah its great!!");
# 关闭文件
fo.close()

其他的方法就不列举了,请参考《python简明教程》

  1. 网络通信,掌握http相关库 在python中提供了标准的http实现: urllib、urllib2、httplib。大家需要对其基本的API熟悉。下面以httplib为示例,来个简单的示例:

# -*- coding: utf-8 -*-    
import
httplib  import urllib    def sendhttp():      # url参数编码    data = urllib.urlencode({'@number': 12524,
       '@type'
: 'issue',
       '@action'
: 'show'})            # 定义请求头    headers = {"Content-type": "application/x-www-form-urlencoded",                 "Accept": "text/plain"}          # 初始化http链接              conn = httplib.HTTPConnection('bugs.python.org')          # 发送POST请求    conn.request('POST', '/', data, headers)          # 获取请求响应,返回的是一个对象    httpres = conn.getresponse()          # 输出返回状态码    print httpres.status          # 输出状态码对应的说明    print httpres.reason          # 输出返回内容    print httpres.read()               if __name__ == '__main__':        sendhttp()

其他方法就不列举,请参考该模块的官方API文档

  • 掌握一些常用的第三方开源库 这里就不举具体的示例,列几个以后自动化测试需要掌握的库

  1. excel解析库: xlrd、xlwt、xlutils

  2. 第三方http库:requests (其API更友好,你可以用于HTTP接口级测试)

  3. UI级自动化测试: selenium/webdriver

  4. 移动端自动化测试: Appium

先初步了解这几个,建议的学习姿势是:

  1. 先了解其常用的API

  2. 多看并练习几个API使用示例

  3. 结合具体业务,只写最核心的业务测试实现,别什么都做,只做最核心的。

  • 掌握一些基本的数据结构和算法

这块先不说掌握所有的算法,至少在不使用标准库的情况下实现冒泡算法吧

# 冒泡算法

array = [1,2,3,6,5,4]
for
i in range(len(array)):    
   for
j in range(i):        
       if
array[j] > array[j + 1]:            
           array
[j], array[j + 1] = array[j + 1], array[j]
print
array

对于其他算法,请找示例并自己去实现。

  • 了解一些设计模式或封装思想

简单一句话:一个模块或是一个类或是一个函数,只干一类/件事。

总结

对于新手来说,千说万说只有一件事:先写够10000行有效代码,每天200行,动起来吧,坚持6个月你就高高手了。



开源优测

分享软件测试开源技术、经验、方案的首发平台

长按二维码/微信扫描 关注开源优测

QQ群:260407012

苦叶子私人微信:liyimin1912

有问题,可留言或加好友进微信群

苦叶子原创文章首发平台


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存