Python基础学习篇(二)
学习教材采用图灵程序设计丛书《Python编程从入门到实践》
今日的学习内容概括为if语句的使用(包括一些条件判断),字典即其相关操作,用户输入,while循环的相关操作,以及函数的使用和操作。
if语句和一些条件测试:
#if语句的使用方法 cars=['aa','bb','cc'] for car in cars: if car=='aa'or car in ['ab','ba','ac']:#or相当于|| print('car is aa') elif car=='ab' and car in ['ab','ba','ac']:#and相当于&& print('car is bb') else: print('car is other') #条件测试 print('aa' in cars)#判断'aa'是否属于列表cars中 print('ab' not in cars)#判断‘ab’是否不属于列表cars中 abc=[] if abc:#判断列表是否为空 print('abc is not None') else: print('abc is None')
字典即相关操作:
#字典(有点像javaScript里的object?) abc={}#一个空字典 print(abc) abc['aa1']=1#增加字典中的元素 print(abc) for value in range(2,10): abc['aa'+str(value)]=value print(abc) del abc['aa3']#删除字典中的元素 print(abc) abc['aa1']=10#修改字典中的元素 print(abc) #遍历字典 for key,value in abc.items():#完整遍历关键字(Key)和值(value)所以需要两个变量(key,value,可任意定义),.items()方法将abc字典转化成列表 print(key) print(value) print() #遍历字典中的键 for key in abc.keys(): print(key+'\n') #对键尽心排序,虽然这个例子输出的键-值队列是有序的,但是其他就不一定了 for key in sorted(abc.keys(),reverse=True): print(key) #遍历字典的值 for value in abc.values(): print(value) abc['aa5']=6 #键必须是唯一,但值可以有重复,如果要获得的是不重复的值,可以用集合函数set() for value in set(abc.values()): print(value) #嵌套:字典中储存列表,字典中储存字典,列表中储存字典等等,不累述
用户输入,以及数字类型的转化:
#用户输入 name=input('please enter your name: ')#input获得的是字符串形式变量 print('hello, '+name+' !') age=input('how old are you: ') age=int(age)#转化成数字(整数)类型 print(age)
while循环的使用即相关操作(while循环区别于for循环争对集合中每一个元素的操作,while循环会不停的执行指导指定的条件满足为止):
#while循环 x=7 while x>=5: if x>15: break#跳出循环 print('first') if x<10: x=x+1 else: x=x+2 continue#跳过下面的语句 print('x = '+str(x)) cats=['aa','bb','cc'] cats1=[] while cats:#只要cats列表不为空就可以继续执行 cats1.append(cats.pop()) print(cats1) for i in range(1,10): cats.append('hahaha') print(cats) count=0 while 'hahaha' in cats: cats.remove('hahaha') count=count+1 print('the count = '+str(count)+' cats is '+str(cats)) for value in range(1,11):#break和continue在for循环中也可以使用 if value>5: break elif value>3 and value<=5: continue else: print('test ...: '+str(value))
函数即相关注意点:
#函数 #形参中,没有默认值的参数要放在前面,有默认值的参数放在后面 #而且一旦确定默认值的类型那么该参数的类型就确定了,即如果实参中传递的参数类型不符合则会报错 def test1_fun(x4,x5,x1='hello',x2='hi',x3=5): print(x1+' '+x2+' '+str(x3)) print('x4 is '+str(x4)+' x5 is '+str(x5)) return x1+str(x4)#返回值 test1_fun(3,2,'5')#实参如果没有带参数名则参数的位置默认一一对应形参,而且如果形参中有默认值的实参也可以不输入 test1_fun(x1='hhh',x2='hahaha',x3=9,x4=0,x5='not')#实参如果指明参数名则位置不重要 print(test1_fun(5,3,'haho','kk')) x=[5,4,3] print(x) def fun1(x):#当函数的传递参数是列表中,在函数中修改列表,那么列表本身也会改变 x[0]=4 return x fun1(x) print(x) x={'first':5,'second':4,'third':3} print(x) def fun2(x):#但是字典不会修改 x['second']=4 print(x) #传递任意数量的参数 def fun3(size ,*num):#*nun可接受任意数量实参,因为都把他们封装在一个名为num的空元组里,但是如果有其他具体参数必须放在前面 print(size) print(str(num)+'\n') fun3(5,'12') fun3(6,'15','17',19) #使用任意数量的关键字实参 def fun4(size,**test): t={} t['size']=size for key,value in test.items(): t[key]=value print(t) fun4(5,aa=4,bb=3,cc=2)