def
upperandlowercount
(str):
upper_count, lower_count =0,
0for i in
str:
if i.isupper():
upper_count +=
1elif i.islower():
lower_count +=
1else
:continue
return upper_count,lower_count
while
true
:print
(upperandlowercount(
input
('請輸入字串:'))
)
'''
**案例:
編寫函式, 接收乙個列表(包含30個1~100之間的隨機整形數)和一
個整形數k, 返回乙個新列表.
函式需求:
- 將列表下標k之前對應(不包含k)的元素逆序;
- 將下標k及之後的元素逆序;
[1,2,3,4,5] 2 [2,1,5,4,3]
'''
import random
defmyreverse
(list
,k):
# 特殊情況處理,k輸入小於0 或者 k超過陣列長度
if k <
0or k >
len(
list):
return
false
# 利用list的切片的性質,以及list的連線性質實現
return
list
[:k][:
:-1]
+list
[k:][:
:-1]
# 使用列表生成式
li =
[random.randint(1,
101)
for i in
range(30
)]print
(li)
print
(myreverse(li,3)
)
結果:
題目需求:
對於乙個十進位制的正整數, 定義f(n)為其各位數字的平方和,如:
f(13) = 1**2 + 3**2 = 10
f(207) = 2**2 + 0**2 + 7**2 = 53
下面給出三個正整數k,a, b,你需要計算有多少個正整數n滿足a<=n<=b,
且k*f(n)=n
輸入: 第一行包含3個正整數k,a, b, k>=1, a,b<=10**18, a<=b;
輸出: 輸出對應的答案;
範例: 輸入: 51 5000 10000
輸出: 3
"""
def
f(n)
: res =
0for i in
str(n)
: res +=
int(i)**2
return res
deftargetnum
(k, a, b)
: count =
0for i in
range
(a, b +1)
:if k * f(i)
== i:
count +=
1return count
inlist =
input()
.split(
)# 使用列表生成器,將每個元素由str轉換成int
inlist =
[int
(i)for i in inlist]
print
(targetnum(inlist[0]
, inlist[1]
, inlist[2]
))
def
f(n)
: n =
str(n)
res =
0for i in n:
res +=
int(i)**2
return res
# 接收 k,a,b 到列表
s =input()
.split(
)# 賦值k,a,b
k, a, b = s
count =
0for i in
range
(int
(a),
int(b)+1
):if f(i)
*int
(k)== i:
count +=
1print
(count)
Python 函式 練習
def sum args val 0 for i in args val i val return val a 10 b 20 def test a,b print a,b c test b,a print c a 20,b 10 c none 因為函式中沒有return,因此返回的是none a ...
Python練習 高階函式
當乙個函式的引數,傳的是另乙個函式的時候,這樣的函式就是高階函式 變數可以指向函式,如果乙個變數指向了乙個函式,那麼,可通過該變數來呼叫這個函式 ap 函式接收兩個引數,乙個是函式,乙個是iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回。def f ...
(十二)Python函式練習
函式 定義函式 defprint me test 列印任何傳入的字串 print test 呼叫函式 print me 我要呼叫使用者自定義函式 print me 再次呼叫同一函式 不定長引數 加了星號 的引數會以元組 tuple 的形式匯入 defprint info arg1,var tuple...