-
原来Bob的成绩是60,现在变成75了,因为
d['Bob'] = 75
的缘故。
因此我们发现这个赋值语句其实有两个功能:当key不存在时,往dict中添加对应的key: value元素。
当key存在时,会更新dict,用新的value替换原来的value。
因此,在使用赋值语句往dict中添加元素时,为了避免不必要的覆盖问题,我们需要先判断key是否存在,然后再做更新。
查看全部 -
value可以是任意类型的元素,可以是list、tuple等,假如Mimi近两次成绩分别是72,73,Dodo近两次的成绩分别是88,90,则可以使用赋值语句往dict中添加list元素。
d['Mimi'] = [72, 73] d['Dodo'] = [88, 90] print(d) d['Dodo'].append(90) print(d)
查看全部 -
d[key]
的形式,就可以得到对应的value。d = { 'Alice': 45, 'Bob': 60, 'Candy': 75, 'David': 86, 'Ellena': 49, 'Gaven': 86 } print(d['Bob']) # ==> 60 print(d['Alice']) # ==> 45 dict本身提供get方法,把key当作参数传递给get方法,就可以获取对应的value,当key不存在时,也不会报错,而是返回None
print(d.get('Alice')) # ==> 45
查看全部 -
二进制:0b ·······
十六进制:0x······
查看全部 -
如果年龄达到18岁,则是成年人,咚咚呛的年龄是19岁,请使用if语句判断咚咚呛是否成年,如果成年,输出'adult',并把咚咚呛的年龄打印出来。
参考答案:
age = 19 if age >= 18: print('your age = {}'.format(age)) print('adult')
查看全部 -
小数点位数
使用Python计算小数的时候,经常需要保留小数点后若干位,可以使用round()函数来处理,这里先了解round的调用方式,使用两个参数,第一个是需要保留小数点位数的数值,第二个是保留的位数。
num = 10 / 3 print(num) # ==> 3.3333333333333335 # 使用round保留两位小数 round(num, 2) # ==> 3.33 地板除,得到的结果会忽略纯小数的部分,得到整数的部分,地板除使用//进行。10//4 # ==> 2 10//2.5 # ==> 4.0 10//3 # ==> 3
查看全部 -
template='life is {0},you need {1}.'
result=template.format('short ','python')
print(result)查看全部 -
python的dict就是专门保存这种映射的,使用dict可以方便的保存“名字”->“成绩”的映射。
在dict中,每一项包含一个key和一个value,key和value是一一对应的,在解决上面的问题中,我们可以使用名字作为key,成绩作为value,那么dict的定义如下:d = { 'Alice': 45, 'Bob': 60, 'Candy': 75, 'David': 86, 'Ellena': 49 } 用花括号{}表示这是一个dict,然后key和value之间使用冒号:分割,并且每一组key:value的最后,以逗号,表示这一组的结束
查看全部 -
add
update
clear
remove
discard
isdisjoint
issuperset
issubset
查看全部 -
set 数据不重复,无序
查看全部 -
函数参数是需要传递给函数内部的数据,在前面,我们已经简单接触了函数的参数,现在我们正式来认识它。
函数参数可以是任意的数据类型,只要函数内部逻辑可以处理即可。保证函数的正常运行,有时候需要对函数入参进行类型的校验,Python提供isinstance()函数,可以判断参数类型,它接收两个参数,第一个是需要判断的参数,第二个是类型。
isinstance(100, int) # ==> True isinstance(100.0, int) # ==> False isinstance('3.1415926', str) # ==> True
查看全部 -
递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。
使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算 fact(10000)。查看全部 -
有时候函数是没有返回结果的,这个时候从函数获取到的是一个空值None。
除了返回None、一个值以外,函数也可以返回多个值,在函数中,如果需要返回多个值,多个值之间使用逗号分隔即可,但是需要注意顺序。
也可以使用一个值存储函数返回的多值结果。
查看全部 -
使用discard()方法删除元素,和remove()不同的是,当元素不存在时,使用discard()并不会引发错误,所以使用discard()是更加高效的一个方法。
和dict一样,set也提供了clear()方法,可以快速清除set中的所有元素。
set提供方法判断两个set之间的关系,比如两个集合set,判断其中一个set是否为另外一个set的子集或者超集。
s1 = set([1, 2, 3, 4, 5]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 判断s1是否为s2的子集 s1.issubset(s2) # ==> True # 判断s2是否为s1的超集 s2.issuperset(s1) # ==> True
et提供
isdisjoint()
方法,可以快速判断两个集合是否有重合,如果有重合,返回False,否则返回True。查看全部 -
set提供了remove()方法允许我们删除set中的元素。如果remove的元素不在set里面的话,那么将会引发错误。因此,使用remove()方法,我们需要格外小心,需要提前判断要remove()的元素是否在set里面,确保存在后,再进行remove。
查看全部
举报