求 1 到100 的乘积
product = i = 1
while i <= 100:
product *= i
i += 1
print(product)
class Solution:
def distanceTraveled(self, mainTank: int, additionalTank: int) -> int:
ans = 0
while mainTank >= 5:
mainTank -= 5
ans += 50
if additionalTank:
additionalTank -= 1
mainTank += 1
return ans + mainTank * 10
class Solution:
def numberOfMatches(self, n: int) -> int:
res = 0
while n > 1:
if n % 2 == 0:
n //= 2
res += n
else:
res += n // 2
n = (n + 1) // 2
return res
class Solution:
def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
res = rem = numBottles # 全部喝完,rem 为空瓶数
while rem >= numExchange:
numBottles, rem = divmod(rem, numExchange) # 可换酒 numBottles 瓶,剩余 rem 个空瓶。
res += numBottles # 全部喝完
rem += numBottles # + 空瓶
return res
break 结束当前循环
continue 结束本次循环,继续判断条件执行下一次循环。
遍历列表 arr = [2, 3, 6, 4, 5, -1, 2, 5],求偶数的和,遇到 -1 终止遍历求和。
arr = [2, 3, 6, 4, 5, 0, 2, 5]
sum_ = 0
for x in arr:
if x == -1:
break
if x % 2:
continue
sum_ += x
print(sum_)
循环语句和 else 配合使用,非 break 终止循环,即正常结束循环,不是通过 break 跳出的,才执行 else 代码。
简单说:没有执行过 break,才执行 else 代码。
判断一个数是质数
n = 565345
for i in range(2, n):
if n % i == 0:
print(n, "是合数")
break
else:
print(n, "是质数")
输出 100 以内的素数
prime = []
for i in range(2,100):
# 如:int(97**0.5) = 9 循环 8 次就可以了,a = b*c,b 和 c 至少有一个 <= a 的平方根。
# for j in range(2,i):
for j in range(2,int(i**0.5)+1):
if not i % j:
break
else:
prime.append(i)
for i in prime:
print(i, end=' ')
d, r = divmod(a, b) <=> d = a // b, r = a % b
// 整除
/ 除,结果是浮点数。
while 条件:
# 循环体
else:
# break 终止循环时不执行
divmod(a, b) 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。