导言
今天学了一阵子python,时间没有预先想象的那么多,感觉自己学习的效率应该提升!不然也不会到现在这个时间才写学习笔记。自勉。今天主要学习的内容如标题所示:循环 dict,set类型,初级函数用法
1.循环
假设有list l=[1,2,3]
首先是for循环,Python似乎不需要考虑计数和循环边界的问题,for语句已经天然地限制在List对象中了。
for elem in l :
do sth...
if 条件判断句:
break/continue #用法与其他语言类似
接着是while循环,while循环不必拘泥于某一对象,方便性下降,但自由性大大提高了~
while 条件(满足即进行循环):
do sth...
2.dict 与 set
dict即是所谓的字典,在其他语言里也有叫做map的。构造字典的时候没有特殊声明,但它用的是 大括号!
d={'key1':1,'key2':2,'key3':3}
如需调用key1对应的value,直接用d['key1']即可(python里几种括号真是用得乱套)
向字典里加入条目非常容易,直接用 d['想用的key']=想用的value 就可以了。删除条目用d.pop('想删除的条目的key')。
查找字典中是否有对应key,可以用in,语法是: print 你想要查找的key in d,如果不用print,光有后面的 你想要查找的key in d 是不会让你看到明确的True or False的。
我的发现是:使用for循环输出d,输出的其实是d中的key,想要输出value还是要老老实实用d['key']。
d中元素存放的顺序与声明时的顺序无关,例如我声明如下:
dic={'a':1,'c':3,4:'m','b':2},使用for循环输出key与value,结果是:
a
1
c
3
b
2
4
m
我们可以看到4:m 和 'b':2的顺序与声明时相反,说明声明顺序与存放顺序无关。
set是和dict类似的结构,但是只有Key,正因为只有Key,所以set中的所有元素都是自动去重的,绝对不会重复,而且会自动排序。
set的声明也很有特点,乱用括号,它会特意声明一下“我是set”
s=set([1,2,3])
p=set('abc')#这个的结果就是p里面是三个字母'a','b','c'
o=set(['abc')]#o中只有一个'abc'
增加可以用a.add(想加的东西),删除可以用s.remove(不想要的东西)
可以求交集并集之类的:s&p(交) s|p(并)
3.初级函数用法
终于明白之前看代码时那些个def是什么了,它是声明“我要define一个函数了”
Python中可以不设置函数参数的数据类型,可以在函数体里写数据类型的限制。有时候还要在函数里对参数进行一些处理,例如:
#coding=utf-8
import math
def quadratic(x,y,z):
a=float(x)
b=float(y)
c=float(z)
delta=b*b-4*a*c
if delta > 0:
return (-b+math.sqrt(delta))/(2*a),(-b-math.sqrt(delta))/(2*a)
elif delta==0:
return (-b/(2*a))
else:
return('no roots')
参数x,y,z进入函数体时均被转化为float型,方便之后的计算,也避免计算出错。
在定义函数的时候也记得要加上冒号!
每一个函数都应该有一个返回值,所以应当确保return
如果你把函数写到一个py里,那么在命令行窗口中应当输入 from py文件的名字(不用带.py) import 函数的名字(不用带括号)