Item
给出某一最大值number,该正整数范围下3或者5的倍数,求其和 题目来源:codewarn(6kyu)
Contents
例: 如果number = 10 那么10以内的整数,且为3或者5的倍数有:3,5,6,9 和则为:3+5+6+9 = 23
Knowledge
- 数据类型:整数型(int)
- 运算符:比较运算符、逻辑运算符
- 容器:Range()整数列表
- 其他:for-if结构、取余判断整数、for循环体简写
Me
- 今天的遭遇题目比较简单,主要是学会缩写for循环的手法;
- 简单分析:3或者5的倍数,那肯定是该数对3或5取余为0的数,而又要在一个范围中寻找这些数,那第一想法就是For遍历Range,再搭配上IF语句,这就很顺利 很奈斯。
- for循环如何简写呢?
首先个人看法:尽量避开代码简写,我做过定时器,发现两者相差不大,大概简写更酷一点、代码页面简明一点,但是,对于不熟悉代码的人不是很友好,特别是第一次接触编程的朋友,接下来进入正题: 先看下普遍常见的几种for循环:
第一种(无嵌套、无条件):
for i in 范围:
执行操作
简写:
[]或者()括号包裹着主要内容,视前面给定变量的类型决定;
列表型_变量 = [执行操作 for i in 范围]
常量型_变量 = (执行操作 for i in 范围)
第二种(无嵌套、有条件):
for i in 范围1:
for j in 范围2:
执行操作
简写:
[执行操作 for i in 范围1 for j in 范围2]
格式引申:理论上多个嵌套,那就多个排列[执行操作 最外层 次外层 …………]
举例:
x_list, y_list, z_list = ['1','2'], ['3','4'], ["5","6"]
[print(x,y,z) for x in x_list for y in y_list for z in z_list]
第三种(无嵌套、有条件):
for i in 范围:
if条件:
执行操作
简写:
[执行操作 for i in 范围 if条件语句 ]
Code
简写for前:
def solution(number):
answer = 0
for i in range(number):
if i%3 == 0 or i%5 == 0:
answer += i
return answer
简写for后:
def solution(number):
answer = sum(i for i in range(number) if i%3 == 0 or i%5 == 0)
return answer
|