"""
分段函數求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
else:
if x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))
Python中循環:
1.
1.1 for ...in...循環:
"""
用for循環實現1~100求和
"""
sum = 0
for x in range(101):
sum += x
print(sum)
注意一點:
需要說明的是上面代碼中的range
類型,range
可以用來產生一個不變的數值序列,而且這個序列通常都是用在循環中的,例如:
-
range(101)
可以產生一個0到100的整數序列。 -
range(1, 100)
-
range(1, 100, 2)
可以產生一個1到99的奇數序列,其中的2是步長,即數值序列的增量。
1.2 while循環:
如果要構造不知道具體循環次數的循環結構,我們推薦使用while
循環,while
循環通過一個能夠產生或轉換出bool
值的表達式來控制循環,表達式的值為True
循環繼續,表達式的值為False
循環結束
例題:
"""
輸入一個正整數判斷它是不是素數
"""
from math import sqrt
num = int(input('請輸入一個正整數: '))
end = int(sqrt(num))
is_prime = True
for x in range(2, end + 1):
if num % x == 0:
is_prime = False
break
if is_prime and num != 1:
print('%d是素數' % num)
else:
print('%d不是素數' % num)
代碼:
z=0
f=0
sum=0
count=0
d=1
def yun(d):
global z,f,sum,count
while d!=0:
d=int(input('Enter an integer,the ends if it is 0:'))
if d>0:
z+=1
if d<0:
f+=1
sum+=d
if d!=0:
count+=1
print('正數個數:%d' % z)
print('負數個數:%d' % f)
print('和為:%d' % sum)
print('平均數是:%f' % (sum/count))
yun(d)