#1. 迭代器 iter()
限制:不能向后移动
不能回到开始
无法复制一个迭代器
要重新进行迭代只能再重新生成一个新的迭代器对象
python中for循环就是用的迭代器,因此 for 能对序列进行迭代
使用:
a = [1,2,3,4]
a = iter(a)
a.next()
#2. 字典 dict{}
a = {} 建立一个空的字典
字典里元素的格式: {'key1':'value1',"key2":"value2",......}
key值不能重复,如果有重复的key值,以从左到右最后出现的那个为准
key值不能更改,但是value值可以更改
一个key值对应一个 value 值 如果有重复的,后面的会把前面的覆盖掉
adict.keys() 返回一个包含字典所有KEY的列表;
adict.values() 返回一个包含字典所有value的列表;
adict.items() 返回一个包含所有(键,值)元祖的列表;
adict.clear() 删除字典中的所有项或元素;
adict.copy() 返回一个字典浅拷贝的副本;
adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,
val做该字典中所有键对应的初始值(默认为None);
adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,
则返回default的值(default默认为None);
adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,
不同的是它们返回一个迭代子,而不是一个列表;
adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;
如果key不存在,且没有给出default的值,则引发keyerror异常;
adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,
由 adict[key] = default 为它赋值;
adict.update(bdict) 将字典bdict的键值对添加到字典adict中
用字典实现case语句功能,进行四则运算
--------------------------------------------------------
#!/usr/bin/python
#coding=utf-8
from __future__ import division
a = input("请输入一个数字:")
b = input("请输入一个数字:")
c = raw_input("请选择要进行的运算(+ - * /):")
d = {'+':a+b,'-':a-b,'*':a*b,'/':a/b}
if c in d.keys():
print "%s%s%s =" %(a,c,b),d[c]
else :
print "没有这种操作"
---------------------------------------------------------
#3.
continue ##跳出本次循环
break ##跳出当前循环
pass ##什么都不做
#4. 函数 def
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
示例:
def fun():
print 1+1
函数的调用直接使用函数名就行
函数的参数:
1>必备参数
2>关键字参数
def fun(x):
print x
标准调用: fun(3) fun('haha')
关键字调用:fun(x='hello')
3>默认参数
def fun(x,y=1):
print x+y
调用: fun(1) fun(1,2)
有缺省值的参数要写在没有缺省值参数的后面
4>不定长参数
传入的参数个数不一定,在参数前面加一个 * 号,在函数内部,参数 a 接收到的是一个 元组(tuple),
因此调用该函数时,可以传入任意个参数
def fun(*a):
s=0
for n in a:
s = s + n
print s
调用 : fun(1,2,3,4)
函数的返回值:
函数可以返回一个值:
return f
也可以返回多个值:
return a,b,c
python函数返回多个值时,其实是返回一个元组,在语法上,返回一个元组可以省略括号
#5.单引号,双引号,三引号
在python中 单引号('...'),双引号("..."),三引号("""...""")都能用来表示字符串,他们的区别在下面:
1.只有三引号包含的字符串可以由多行组成,而不用加换行符,表示大段的叙述性字符串
2.三引号,双引号可以包含单引号,三引号可以包含双引号,换而言之,在三引号内,双引号与单引号都可以正常输出,而不用转义,
在双引号内,单引号也可以正常输出.不用转义
例子:
要输出 it`s yours 时 可以用双引号直接输出,而用单引号,就必须要对 ` 进行转义
要输出 I love "hello world" 时 就可以用三引号,而用单引号或者双引号,就必须对 "" 进行转义
脚本:
------------------------------------
#!/usr/bin/env python
#coding=utf-8
a = []
count = input("您要输入几组姓名:")
print "请依次输入%d组姓名,按如下格式:\n\t姓,名\n" %(count)
i = 0
j = 0
while 1:
if i == count :
break
else :
name = raw_input("请输入姓名:")
if "," not in name or "," == name[0] or "," == name[-1] or name.count(',') != 1:
print "您的输入有误,请按照正确格式重新输入。"
j += 1
else :
i += 1
a.append(name)
print "输入成功!"
a.sort()
print "\n您输错了%d次\n" %(j)
print "最终输入结果为:"
for i in range(0,count):
print a[i]
----------------------------------------
限制:不能向后移动
不能回到开始
无法复制一个迭代器
要重新进行迭代只能再重新生成一个新的迭代器对象
python中for循环就是用的迭代器,因此 for 能对序列进行迭代
使用:
a = [1,2,3,4]
a = iter(a)
a.next()
#2. 字典 dict{}
a = {} 建立一个空的字典
字典里元素的格式: {'key1':'value1',"key2":"value2",......}
key值不能重复,如果有重复的key值,以从左到右最后出现的那个为准
key值不能更改,但是value值可以更改
一个key值对应一个 value 值 如果有重复的,后面的会把前面的覆盖掉
adict.keys() 返回一个包含字典所有KEY的列表;
adict.values() 返回一个包含字典所有value的列表;
adict.items() 返回一个包含所有(键,值)元祖的列表;
adict.clear() 删除字典中的所有项或元素;
adict.copy() 返回一个字典浅拷贝的副本;
adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,
val做该字典中所有键对应的初始值(默认为None);
adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,
则返回default的值(default默认为None);
adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,
不同的是它们返回一个迭代子,而不是一个列表;
adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;
如果key不存在,且没有给出default的值,则引发keyerror异常;
adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,
由 adict[key] = default 为它赋值;
adict.update(bdict) 将字典bdict的键值对添加到字典adict中
用字典实现case语句功能,进行四则运算
--------------------------------------------------------
#!/usr/bin/python
#coding=utf-8
from __future__ import division
a = input("请输入一个数字:")
b = input("请输入一个数字:")
c = raw_input("请选择要进行的运算(+ - * /):")
d = {'+':a+b,'-':a-b,'*':a*b,'/':a/b}
if c in d.keys():
print "%s%s%s =" %(a,c,b),d[c]
else :
print "没有这种操作"
---------------------------------------------------------
#3.
continue ##跳出本次循环
break ##跳出当前循环
pass ##什么都不做
#4. 函数 def
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
示例:
def fun():
print 1+1
函数的调用直接使用函数名就行
函数的参数:
1>必备参数
2>关键字参数
def fun(x):
print x
标准调用: fun(3) fun('haha')
关键字调用:fun(x='hello')
3>默认参数
def fun(x,y=1):
print x+y
调用: fun(1) fun(1,2)
有缺省值的参数要写在没有缺省值参数的后面
4>不定长参数
传入的参数个数不一定,在参数前面加一个 * 号,在函数内部,参数 a 接收到的是一个 元组(tuple),
因此调用该函数时,可以传入任意个参数
def fun(*a):
s=0
for n in a:
s = s + n
print s
调用 : fun(1,2,3,4)
函数的返回值:
函数可以返回一个值:
return f
也可以返回多个值:
return a,b,c
python函数返回多个值时,其实是返回一个元组,在语法上,返回一个元组可以省略括号
#5.单引号,双引号,三引号
在python中 单引号('...'),双引号("..."),三引号("""...""")都能用来表示字符串,他们的区别在下面:
1.只有三引号包含的字符串可以由多行组成,而不用加换行符,表示大段的叙述性字符串
2.三引号,双引号可以包含单引号,三引号可以包含双引号,换而言之,在三引号内,双引号与单引号都可以正常输出,而不用转义,
在双引号内,单引号也可以正常输出.不用转义
例子:
要输出 it`s yours 时 可以用双引号直接输出,而用单引号,就必须要对 ` 进行转义
要输出 I love "hello world" 时 就可以用三引号,而用单引号或者双引号,就必须对 "" 进行转义
脚本:
------------------------------------
#!/usr/bin/env python
#coding=utf-8
a = []
count = input("您要输入几组姓名:")
print "请依次输入%d组姓名,按如下格式:\n\t姓,名\n" %(count)
i = 0
j = 0
while 1:
if i == count :
break
else :
name = raw_input("请输入姓名:")
if "," not in name or "," == name[0] or "," == name[-1] or name.count(',') != 1:
print "您的输入有误,请按照正确格式重新输入。"
j += 1
else :
i += 1
a.append(name)
print "输入成功!"
a.sort()
print "\n您输错了%d次\n" %(j)
print "最终输入结果为:"
for i in range(0,count):
print a[i]
----------------------------------------