zoukankan      html  css  js  c++  java
  • python 学习笔记一

    初级阶段 (简单实践)

    tmp_storage = ""
    welcome = "hello!"
    tmp_storage = welcome
    print tmp_storage

    结果:hello!

    -------------------------------------------------

    radius = 10
    pi = 3.14
    area = pi*radius**2
    print "the area is", area

    结果:the area is 314.0

    ---------------------------------------------------

    my_list = []
    my_list = [1,2]
    print my_list
    my_list.append(3)
    print my_list

    结果:[1, 2, 3]

    list是可以索引的:
    print my_list[1]
    不过你或许会不明白为什么是2,而不是显示的是1。因为索引从0开始,要输出第一个元素:
    print my_list[0]

    ----------------------------------------------------

    contact_list=[]
    contact1={}
    contact1['name']='taowen'
    contact1['phone']=68942443
    contact_list.append(contact1)
    contact2={}
    contact2['name']='god'
    contact2['phone']=44448888
    contact_list.append(contact2)
    print contact_list

    结果:[{'phone': 68942443, 'name': 'taowen'}, {'phone': 44448888, 'name': 'god'}]

    ---------------缩进就是python中表示一段代码的从属关系的标记方法-----------------------------------------

    i = 5
    n = 0
    while i>0:
        n = n + i
        i = i - 1
    print n

    结果:15

    i = 5
    n = 0
    while i>0:
        n = n + i
        i = i - 1
        print n

    结果:
    5
    9
    12
    14
    15

    你会发现输入:之后,自动会给缩进。而且也没有在python中发现和C/C++中类似的{}标记也没有pascal中的begin end;,
    其实缩进就是python中表示一段代码的从属关系的标记方法。表示n=n+1和i=i-1这两句都是while的。
    程序的运行逻辑应该不用解释了吧。就是运行5+4+3+2+1的结果。

    ---------------------------------------------------

    输入要使用的是raw_input或者input函数,区别是raw_input直接把你的输入作为字符串返回,
    而input则在raw_input的基础上把字符串转换为数字返回(如果你输入$@#$$怎么办?自己试试看)。
    我们就利用这两个输入函数来作一些有趣的事情。

    your_name = raw_input("please input your name:")

    输入:qiaochao

    hint = "welcome! %s" % your_name
    print hint

    结果:welcome! qiaochao

    %s表示在这个位置插入一个字符串,%表示把后面提供的参数“推”入前面的字符串中,所以推的结果是把%s推出去了,
    把your_name给填入那个地方了。printf知道吧,C中的printf就是一样的嘛。

    -- 

    inputed_num = 0
    while 1:
        inputed_num = input("input a number between 1 and 10 ")
        if inputed_num >= 10:
            pass
        elif inputed_num < 1:
            pass
        else:
            break
    print "hehe, don't follow, won't out"

    pass就是pass了,过了嘛,什么都不干了。break就是跳出这个while 1(无穷循环,1总是真的,while总是执行)。 是换行

    ----------------------------------------------------------------------------------------------


    contact = {}
    contact_list = []
    while 1:
        contact['name'] = raw_input("please input name: ")
        contact['phone'] = raw_input("please input phone number: ")
        contact_list.append(contact.copy())
        go_on = raw_input("continue? ")
        if go_on == "yes":
            pass
        elif go_on == "no":
            break
        else:
            print "you didn't say no "
    i = 1
    for contact in contact_list:
        print "%d: name=%s" % (i, contact['name'])
        print "%d: phone=%s" % (i, contact['phone'])
        i = i + 1


    执行:python wanzheng.py
    please input name: qiaochao
    please input phone number: 18701376272
    continue?
    no
    1: name=qiaochao
    1: phone=18701376272

    很有特色的%操作,起到格式化字符串的作用,前面仅仅在字符串中有一个%s,现在有%d和%s两个,分别代表插入十进制数值和字符串于%x标记的位置处。
    列表
    列表是顺序的序列,用append在后面附加,也能构用索引值索引。所以我们完全可以用一个变量保存len(contact_list)得到的长度,
    然后一个个的遍历,不过这里展示了另外一种非常方便的方法。而且值得注意的是append()中的参数,我使用了contact.copy(),
    你可以尝试着把copy()给去掉,观察结果你就知道了所谓的append是怎么干的了,特别是你对指针之类的东西很有感觉的话(但是在Python中是没有指针这个概念的)
    判断
    if是很好用的,==表示判断两个是否相等,=表示把右边的赋给左边的。而且可以直接判断字符串是否相等,这个太方便了,如果你曾经用过strcpy()的话,就知道了。
    elif是表示else if的意思,如果if不满足就判断elif的条件是否满足,最后是到else中去
    循环是个主体
    while和for都是循环。不过这里while就没什么说的了,又是很经典的while 1,死循环,然后必须在里面用break来跳出。for和C中的for是不一样的,
    for in才是一个完整的语句,指的是从一个能够逐一取值的序列中(比如list),一个一个的取出值赋给for后面指定的变量中,直到取空,循环结束。
    其实回想一般用C中的for的经历,也大体如此。而且你还可以用for i in range(1,100)来指定一个范围从多少到多少。可以说for in充分体现了python的体贴周到,
    用起来很直观,不会绕弯。

    接下来就是运行了,大家慢慢调试吧。下次可能是讲异常处理,因为我觉得在深入到使用各种高级的要素之前,先要学会怎么去处理异常
    。最常见的异常应该是input(),然后你给出的输入是一个无法转换为数字的字符串了,那么我们就要来处理它。

  • 相关阅读:
    [原创]浅谈测试团队转型,思维模式的转变是关键
    [原创]浅谈IT人如何做理财规划
    [原创]浅谈对华为34岁以上员工“退休”
    [原创]2017年1月读书推荐
    [原创] 上海利得基金招聘测试经理/测试工程师/测试开发工程师(长期有效)
    [原创]浅谈从“述职”向“述能”转变
    IBM的IT战略规划方法论
    腾讯企业大学培训经验
    [原创]Android App上线检查checklist
    移动开发规范
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206919.html
Copyright © 2011-2022 走看看