• 菜鸟学python-基础(2)


    变量命名:
    1)必须以字符或下划线开头
    2)以单下划线开头(_fo)表示不能直接訪问的类属性,须要类提供的接口进行訪问
    3)以双下划线开头(__foo)的代表类的私有成员
    4)以双下划线开头(__foo__)和结尾的代表python中特殊方法专用的标识,比如__init__()代表类的构造函数

    全局变量
    keyword global
    _num = 12
    def myfunction ():
    	global _num		#引用全局变量
    	num = _num + 1
    	print 'myfunction num=' + str(num)
    myfunction()

    字符串的表示函数
    str():把值转换为合理形式的字符串,以便用户理解
    repr():创建一个字符串。以合法的python表达式的形式来表示值。
    比如:
    >>> print repr(123L)
    123L
    >>> print str(123L)
    123

    输入与输出
    输出:print语句
    输入:input()和raw_input()函数
    input()将读入的用户数据默觉得python表达式
    raw_input()将读入的数据转换为字符串

    运算符

    1)

    >>> 5/6
    0
    >>> 5//6
    0
    >>> 5.0/6
    0.8333333333333334
    >>> 5.0//6
    0.0
    2)
    >>> from __future__ import division
    >>> 5/6
    0.8333333333333334
    >>> 5//6
    0
    >>> 5.0/6
    0.8333333333333334
    >>> 5.0//6
    0.0
    3)
    >>> -3**2
    -9
    >>> -(3**2)
    -9
    幂运算符(**)比取反运算符(一元减运算符)的优先级要高,所以-3**2和-(3**2)是等价的。



    运算符的优先级
    算术运算符>关系运算符>逻辑运算符

    True和False仅仅是对1和0的一种唯美的修饰而已,但实质是一样的。參考以下的样例:

    >>> True == 1
    True
    >>> False == 0
    True

    循环语句实例:
    1)while
    i = 1
    while i <= 5:
        print('The ' + str(i) + ''s print. ')
        i += 1
    else:
        print('End...')

    2)for
    array = [(1, 2), (3, 4), (5, 6)]
    for (x, y) in array:
        print(x, y);

    迭代器
    for line in open('test.txt'):
    	print line

    并行迭代
    1)
    names = ['admin', 'guest']
    passwords = ['admin', 'guest']
    for i in range(len(names)):
        print("name: %s, password: %s" % (names[i], passwords[i]))

    2)
    names = ['admin', 'guest']
    passwords = ['admin', 'guest']
    for name, password in zip(names,passwords):
        print("name: %s, password: %s" % (name, password))
    zip将两个序列“压缩”到一起,然后返回一个元组的列表。



    编号迭代

    names = ['admin', 'guest']
    for index, name in enumerate(names):
        if 'admin' in name:
            names[index] = 'root'
            print("index: %s, name: %s" % (index, name))
    print(names)
    enumerate的主要作用时在提供索引的地方迭代索引值对。

    一些语句
    break:
    在一个循环语句中出现breakkeyword。表示跳出整个循环。假设在嵌套循环中出现breakkeyword。则表示跳出此嵌套循环。
    continue:
    跳过此次循环。继续进行下一次循环
    pass:
    表示什么都不用做,类似于一个占位符
    del:
    能够删除不再使用的对象。

    使用del语句不仅会移除对一个对象的引用,也会移除这个名字本身。
    1)

    name = 'admin'
    del name
    print name
    这个程序执行结果会报错:NameError: name 'name' is not defined
    2)
    name = 'admin'
    key = name
    del name
    print key
    这个程序执行结果为admin。移除name后并不影响key。由于python中删除的仅仅是名称,而不是值本身。
    exec:
    exec "print 'hello'"
    运行结果为:hello

    函数和模块
    python程序由包(package)、模块(module)和函数(function)组成。


    包是由一系列模块组成的集合。模块是处理某一类问题的函数和类的集合。python提供了非常多实用的工具包,如字符串处理、图像处理、web应用等。
    包必须至少包括一个__init__.py文件,该文件的内容能够为空。__init__.py用于标识当前目录是一个包。



    函数
    1)定义

    def function_name(arg1,arg2,....):
    	statement
    	return value
    当中。返回值不是必须的。

    假设没有return语句,则python默认返回值为None。


    样例:

    def login(username, password):
        if (username == 'admin') and (password == 'admin'):
            print 'login success!'
        else:
            print 'login error.....'
    能够使用例如以下语句调用:
    login('admin', 'admin')

    2)函数形參与默认參数值
    參数的传递有两种方式:值传递和引用传递。參数在函数定义的圆括号内指定。用逗号隔开,当调用函数的时候,也须要以相同的方式提供值(函数中的參数名称为形參。用户提供给函数调用的值称为实參)。
    2.1)默认參数值:
    def login(username="guest", password="guest"):
        if (username == 'admin') and (password == 'admin'):
            print 'login success!'
        else:
            print 'login error.....'

    以下来使用例如以下几种调用方式调用:
    login('admin', 'admin')
    login('admin')
    login(password='admin')
    login()

    返回的结果例如以下:
    login success!
    login error.....
    login error.....
    login error.....
    第一种方式提供了两个參数。将默认的两个值覆盖。
    另外一种方式提供了一个,所以username被admin覆盖。但password使用默认的guest。
    第三种方式指定了password为admin。但username使用默认的guest
    第四中方式两个參数都使用了默认值。

    2.2)列表參数值
    def print_array(names=[]):
        for name in names:
            print(name)
    
    keys = ['admin', 'guest']
    print_array(keys)

    2.3)可变长度參数值
    def print_names(* names):
        for name in names:
            print(name)
    
    
    print_names('root')
    print_names('admin', 'guest')

    由于參数使用了*标识符,因此传入的实际參数被“封装”到一个元组中。

    2.4)字典类型參数值
    def print_key_value(** key_value):
        keys = key_value.keys()
        for key in keys:
            print("key: %s, value: %s" % (key, key_value[key]))
    
    
    print_key_value(username = 'admin', password = 'admin')
    执行结果:
    key: username, value: admin
    key: password, value: admin

    转载请注明出处:http://blog.csdn.net/iAm333

  • 相关阅读:
    自定义注解标签验证
    redis-服务器配置-主从
    POJ-2195 Going Home(最小费用最大流模板)
    POJ-1087 A Plug for UNIX
    HDU-3625 Examining the Rooms (第一类斯特林数)
    网络流入门
    CodeForces-1082G Increasing Frequency
    python学习之模块-模块(三)
    python学习之模块-模块(二)
    python学习之模块-模块(一)
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6889500.html
Copyright © 2020-2023  润新知