lesson23复习3:
#视频1-案例讲解
#第一题
#利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示
#60-89分之间的用B表示,60分一下的用C表示
1 #第一题:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示 2 #60-89分之间的用B表示,60分一下的用C表示 3 4 x=80 5 6 if x>=90: 7 print("A") 8 elif x in range(60,90): 9 print("B") 10 else: 11 print("C")
#运行:
B
------------------------------------------------
输入 某年-某-月-某日,判断这一天是这一年的第几天?
例如:
输入: 2018-01-01 输出 2018-01-01是2018年第1天
输入: 2018-02-28 输出 2018-02-28是2018年第59天
1 #第二题:输入 xxxx-xx-xx 得出第几天 2 3 #第一种方法 4 x="2018-11-01" 5 #首先需要把 年月日 取出来? 6 year,month,day=x.split("-") #拆包 7 #所有月份的天数:31 30 2月 8 9 count_day=0 10 #循环,加上当前月之前月份的所有天数 11 for i in range(1,int(month)): 12 #想要加所有月份, 13 if i==2: 14 count_day +=29 if False else 28 15 elif i in [1,3,5,7,8,10,12]: #31天的月份 16 count_day +=31 17 else: 18 count_day +=30 19 count_day += int(day) 20 print(count_day);
#运行:305
------------------------------------------------
#第二种方法:
1 #第二种方法: 2 time="2018-11-01" 3 year,month,day=map(lambda obj:int(obj),time.split("-")) 4 #拆包 map函数 匿名函数 5 6 count_day=0 7 def fun(obj): 8 if obj==2: 9 return 29 if year%4==0 and year %100 !=0 or year %400==0 else 28 10 #三目运算 11 else: 12 return 31 if obj in [1,3,5,7,8,10,12] else 30 13 14 count_day+= day +sum(map(fun,range(1,month))) 15 print(count_day)
#运行:305
------------------------------------------------
#第三题:
输入一个字符串,统计出字符串中的元素的个数
要求:
1,字符不区分大小写,也就是‘A’也算在‘a’这个的个数上
2,返回一个固定28个的字典,字典的28键为:a-z,26个小写字母,加上‘WHITESPACE’ 和‘OTHER’
3,字典的值为队友元素的个数,字符是空格则属于‘WHITESPACE’,其他的字符为‘OTHER’
提示:先创建一个28个键的字典,字典键队友的初始值为0
1 # #第三题: 2 # 输入一个字符串,统计出字符串中的元素的个数 3 # 4 # 要求: 5 # 1,字符不区分大小写,也就是‘A’也算在‘a’这个的个数上 6 # 2,返回一个固定28个的字典,字典的28键为:a-z,26个小写字母,加上‘WHITESPACE’ 和‘OTHER’ 7 # 3,字典的值为队友元素的个数,字符是空格则属于‘WHITESPACE’,其他的字符为‘OTHER’ 8 # 提示:先创建一个28个键的字典,字典键队友的初始值为0 9 10 x="AAA ?xx" 11 12 di={chr(k):0 for k in range(97,123)} 13 di.update({"withspace":0,"other":0}) 14 15 y=x.lower() 16 #print(y) 17 18 #统计,1遍历,2正则 19 for i in y: 20 if i in di.keys(): 21 di[i] +=1; 22 elif i==" ": 23 di['withspace']+=1 24 else: 25 di["other"] +=1 26 27 print(di)
#运行:
{'n': 0, 'w': 0, 'y': 0, 'l': 0, 'u': 0, 'b': 0, 'd': 0, 'g': 0,
'r': 0, 's': 0, 'z': 0, 'k': 0, 'i': 0, 'p': 0, 'j': 0, 'e': 0,
'withspace': 1, 'c': 0, 'q': 0, 'f': 0, 't': 0, 'v': 0,
'h': 0, 'x': 2, 'a': 3, 'o': 0, 'm': 0, 'other': 1}
------------------------------------------------
#第四题:写一个属于你自己的Frange函数,Frange与range类似,一样的参数规则,但是每一项必须是float类型
要求:
1,不能利用range等已有的功能来方便实现,要自己写逻辑
2,输出只需要是个列表就好
列如:
>>>Frange(10)
[0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0]
>>>Frange(1,5)
[1.0,2.0,3.0,4.0]
>>>Frange(1,10,2)
[1.0,3.0,5.0,7.0,9.0]
1 #第一种解答 2 def fun(start,stop=0,step=1): 3 if stop==0: 4 stop=start 5 start=0 6 7 li=list() 8 while start<stop: 9 li.append(float(start)) 10 start+=step 11 12 return li 13 14 li2=fun(1,10,2) 15 print(li2)
#运行:
[1.0, 3.0, 5.0, 7.0, 9.0]
#第二种解答
1 #第二种解答 2 def frange(start,stop=0,step=1): 3 li=list() 4 5 if stop==0: 6 start,stop=stop,start 7 8 while start<stop: 9 li.append(float(start)) 10 start+=step 11 12 return li 13 14 li2=frange(1,10,2) 15 print(li2)
#运行:
[1.0, 3.0, 5.0, 7.0, 9.0]