1. 程式人生 > >循環與判斷的練習與作業

循環與判斷的練習與作業

Python 循環 判斷

1、輸入2個數字,輸出最大數。
a = int(input(‘>>>’))
b = int(input(‘>>>’))
if a >= b:
print(a)
else:
print(b)

2、輸入兩個數,比較大小後,從小到大升序打印。
a = int(input('first: '))
b = int(input('second: '))

if a > b:
print(b,a) 或者 print(b,a) if a > b else print(a,b) #三目運算符
else:
print(a,b)

3、請輸入若幹個整數,打印出最大值。
(1)
numbei = int(input("number"))
n = int(input("how"))
for i in range(n):
newnumber = int(input("number"))
if number >= number:
number = newnomber
else:
print(number)
(2)
m = int(input("Input first number >>>"))
while True:
a = input("Input a number >>>")
if a:
a = int(a)
if a > m:
m = a
print('Max is',m)
else:
break

4、給定一個不超過五位的正整數,判斷其有幾位。
(1)
val = int(input(‘>>>’))
if val >= 10000:
b = 5
elif val >= 1000:
b = 4
elif val >= 100:
b = 3
elif val>= 10:
b = 2
else:
b = 1
print(b)

(2)
val = int(input(‘>>>’))
if val >= 1000:
if val >= 10000:
b = 5
else:
b = 4
else:
if val >= 100:
b = 3
elif val >= 10:
b = 2
else:
b = 1
print(b)
(3)
newnumber = input("nember")
length = len(newnumber) #取字符串
if length > 5:
print(5)
elif length > 4:
print(4)
elif length > 3:
print(3)
elif length > 2:
print(2)
else:
print(1)

5、給定一個不超過5位的正整數,判斷該數的位數,依次打印出個位、十位、百位、千位、萬位的數字。
(1)
a = int(input('>>>'))
if a >= 1000:
if a >= 10000:
b = 5
else:
b = 4
else:
if a >= 100:
b = 3
elif a >= 10:
b = 2
else:
b = 1
print(b)
for i in range(b):
print(a % 10)
a = a // 10
(2)
val = input('>>>')
val = int(val)
print(val)
if val >= 1000: # 折半
if val >= 10000:
num = 5
else:
num = 4
else:
if val >= 100:
num = 3
elif val >= 10:
num = 2
else:
num = 1
print(num)
c = val
for i in range(num):
n = c // 10
print(c - n*10)
c = n

6、給定一個不超過5位的正整數,判斷該數的位數,依次從萬位打印到個位的數字。
(1)
val=int(input('>>>'))
if val>=1000:
if val >= 10000:
num = 5
else:
num = 4
else:
if val >= 100:
num = 3
elif val >= 10:
num = 2
else:
num = 1
print(num)
pre=0
for i in range(num,0,-1):
cur = val // (10 ** (i-1))
print(cur - pre*10)
pre = cur
(2)
c = int(print('>>>'))
w = 10000
for i in range(5):
print(c//w)
c %= w
w //= 10
(3)
c = int(input('>>>'))
length = len(c) #取字符長度
w = 10 ** (length - 1)
flag = False
while w:
t = c // w
if flag:
print(t,end = ' ')
else:
if t:
print(t,end = ' ')
flag = True
else:
length-=1
c %= w
w //= 10
print()
print("The length of number is",length)

7、打印一個邊長為n的正方形
(1)
n = int(input('>>>'))
print(n * ’*’)
for i in range(n-2):
print(‘*’ + ’ ’*(n-2) + ’*’)
print(n * ’*’)
(2)
n = int(input('>>>'))
e = -n // 2
for i in range(e,n+e):
if i == e or i == n+e-1:
print('*'*n)
else:
print('*' + ''(n-2) + '*')

8、求100內所有奇數的和(2500)
sum = 0
for i in range(1,100,2):
sum += i
print(sum)

9、判斷學生成績,成績等級A-E,其中,90分以上為‘A’,80~89分為'B',70~79分為'C',60~69分為'D',60分以下為'E'
(1)
a = int(input('>>>'))
if a >= 90:
b = 'A'
elif a >= 80:
b = 'B'
elif a >= 70:
b = 'C'
elif a >= 60:
b = 'D'
else:
b = 'E'
print(b)

10、求1到5階乘之和
sum = 0
a = 1
for i in range(1,6):
a = i * a
sum += a
print(sum)

11、給一個數,判斷它是否是素數(質數),質數:一個大於1的自然數只能被1和它本身整除
num = int(input('>>>'))
for i in range(2,int((num**0.5)+1)):
if num % i == 0:
print('這不是質數')
break
else:
print('這是個質數')
作業

1、打印九九乘法表
(1)左下角,未對齊:
for i in range(1,10):
for j in range(1,i+1):
print(j,'x',i,'=',i*j,end=' ')
print()
(2)左下角,已對其:
for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={:<{}}'.format(j,i,i*j,2 if j<2 else 3),end='')
print()
(2)右上角
for i in range(1,10):
line=''
for j in range(i,10):
line+='{}*{}={:<{}}'.format(i,j,i*j,2 if j<4 else 3)
print('{:>65}'.format(line))

2、打印實心菱形
(1)
n = int(input('奇數'))
e = n//2
for i in range(-e,n-e):
a = -i if i < 0 else i
print(' '*a+'*'*(n-a*2))
(2)
n = int(input('輸入一個數>>>'))
if not n % 2:
n += 1
e = n//2
for i in range(-e,n-e):
print(' '*abs(i) + '*'*(n-2*abs(i))) #abs:絕對值

3、打印對頂三角形
n = int(input('輸入一個奇數>>>'))
e = n//2
for i in range(-e,n-e):
print(' '*(e-abs(i)) + '*'*(2*abs(i)+1))

4、打印閃電
n = int(input('>>>'))
e = n//2
for i in range(-e,n-e):
if i < 0:
print(' '*(e) + '*'*(n-e+i ))
elif i == 0:
print(n*'*')
else:
print(e*' '+'*'*(n-e-i))

5、打印100以內的斐波那契數列
a = 1
b = 1
print(a)
print(b)
for i in range(2,101):
if i == a + b:
print(i)
a = b
b = i

6、求斐波那契數列第101項
(1)
a = 1
b = 1
count = 2
while True:
sum = a + b
a = b
b = sum
count += 1
if count == 101:
break
print(sum)
(2)
a = 1
b = 1
for i in range(2,101):
sum = a + b
a = b
b = sum
print(sum)

7、求10萬內的所有素數
(1)
import datetime
start=datetime.datetime.now()
print(2,"\t",end="")
count = 1
for i in range(3,100001,2):
for j in range(2,int((i**0.5)+1),2):
if i % j == 0:
break
else:
print(i,"\t",end="")
count += 1
print(count)
delta = (datetime.datetime.now() - start).total_seconds() #時間計算
print(delta)

8、猴子吃桃
n = 1
for i in range(1,10):
n = 2 * (n+1)
print(n)

9、給一個半徑。求圓的面積和周長,圓周率為3.14.
(1)
R = int(input(輸入一個半徑))
S = 3.14 * (R ** 2)
L = 3.14 * 2R
print("Area is" S)
print("Perimeter is" L)
(2)
R = int(input('r='))
print('area=' + str(3.14*R*R))
print('perimeter=' + str(3.14*2*R))

10、輸入n個數,求每次輸入後的算術平均數。
count = 0
sum = 0
while True:
num = input(">>>")
if not num:
break
else:
num = int(num)
sum += num
count += 1
print(sum / count)

循環與判斷的練習與作業