码迷,mamicode.com
首页 > 编程语言 > 详细

菜鸟学python-基础(2)

时间:2014-11-18 11:51:32      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   使用   sp   for   

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

全局变量
关键字 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:
在一个循环语句中出现break关键字,表示跳出整个循环。如果在嵌套循环中出现break关键字,则表示跳出此嵌套循环。
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

菜鸟学python-基础(2)

标签:style   blog   http   io   color   ar   使用   sp   for   

原文地址:http://blog.csdn.net/iam333/article/details/41243249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!