python用户输入一个字符串、将下标为偶数_Python 阶段综合练习一

本文提供了一系列Python编程练习题,包括判断偶数、检查整数、数字求和与乘积、质数检测、字符串反转、移除元音、斯克布雷bble得分计算、替换特定词汇、计数元素出现次数、过滤偶数、可变参数相乘及去重等,旨在巩固Python基础知识。
摘要由CSDN通过智能技术生成

1. 定义 is_Even 函数,传一 int 参数,判断是否是偶数,return True;不是,return False

'''is_Even'''

def is_Even(i):

if(i%2==0):

return True

else:

return False

print(is_Even(0),is_Even(1),is_Even(1))

2. 定义 is_Int 函数,传一 float 参数,判断是否是整数(如1.0 即整数),return True;不是,return False

'''is_Int'''

def is_Int(f):

if(f%1==0):

return True

else:

return False

print(is_Int(0),is_Int(1.0),is_Int(1.1))

3. 定义 digital_sum 函数,传一 int 参数,return 其所有位数的数字相加的和;如:1234 返回 10(1+2+3+4); 900 返回 9 (9+0+0)

'''digital_sum'''

def digital_sum(i):

sum = 0

while(i/10>1):

sum += i%10

i = int(i/10)

sum += i

return sum

print(digital_sum(23423),digital_sum(900),digital_sum(0))

def digital_sum(i):

i = str(i)

sum = 0

for d in i:

sum += int(d)

return sum

print(digital_sum(23423),digital_sum(900),digital_sum(0))

4. 定义 factorial 函数,传一 int 参数,return 其所有位数数字相乘的积;如:1234 返回 24 (1*2*3*4); 909 返回 0 (9*0*9)

'''factorial'''

def factorial(i):

result = 1

while(i/10>1):

result *= i%10

i = int(i/10)

result *= i

return result

print(factorial(1234),factorial(909),factorial(0))

'''factorial'''

def factorial(i):

i = str(i)

result = 1

for d in i:

result *= int(d)

return result

print(factorial(1234),factorial(909),factorial(0))

5. 定义 is_prime 函数,传一 int 参数,判断是否是质数(仅可被1或自己整除),若是,return True;不是,return False; 如:1 返回 True;2 返回 True;4 返回 False;13 返回 True

规定 0 不是质数,返回 False

'''is_prime'''

def is_prime(i):

result = True

for d in range(2,i):

if(i%d==0):

result = False

break

if(i==0):

result = False

return result

print(is_prime(1),is_prime(2),is_prime(3),is_prime(4),is_prime(13),is_prime(197),is_prime(201),is_prime(0))

6. 定义 reverse 函数,传一 str 参数,将所有字符串字符倒置并 return 该字符串;如:"abcd" return "dcba"

备注:list.reverse() 及 list[::-1] 可表示 list 倒置

'''reverse'''

def reverse(s):

l = list(s)

new_l = []

for i in range(len(l)-1,-1,-1):

new_l.append(l[i])

return "".join(new_l)

print(reverse("ab cd"),reverse(""))

'''reverse'''

def reverse(s):

l = list(s)

l.reverse() # l = l[::-1]

return "".join(l)

print(reverse("ab cd"),reverse(""))

7. 定义 anti_vowel 函数,传一 str 参数,将字符串中所有的元音(a e i o u) 去除(注意大小写),并return;

如:"Apple is red."  return  "ppl is rd."

备注:对于list,for item in list_name 即可遍历list,可以不用下标的方式,参见下方的两种方式(之后的例子也列出了两种方式)

'''anti_vowel 1'''

def anti_vowel(s):

l = list(s)

new_l = []

for i in range(len(l)):

if (l[i] not in {'a','e','i','o','u','A','E','I','O','U'}):

new_l.append(l[i])

return "".join(new_l)

print(anti_vowel("Apple is red."))

'''anti_vowel 2'''

def anti_vowel(s):

l = list(s)

new_l = []

for letter in l:

if (letter not in {'a','e','i','o','u','A','E','I','O','U'}):

new_l.append(letter)

return "".join(new_l)

print(anti_vowel("Apple is red."))

8. 定义 scrabble_score 函数,传一 str 参数。预设一组词典(见下方引用),根据词典中字母对应的数值,将传入参数的每个字母数值相加

(非字母不加,注意大小写转换);如:"Word !"  分别对应取 "w": 4 , "o": 1, "r": 1,"d": 2 , 相加为 4+1+1+2 = 8  return 该值

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1, "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4, "x": 8, "z": 10}

'''scrabble_score 1'''

def scrabble_score(s):

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1, "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4, "x": 8, "z": 10}

l = list(s)

sum = 0

for i in range(len(l)):

letter = l[i].lower()

if letter in score.keys():

sum += score[letter]

return sum

print(scrabble_score("Word !"),scrabble_score("Hello World~!"))

'''scrabble_score 2'''

def scrabble_score(s):

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1, "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4, "x": 8, "z": 10}

l = list(s)

sum = 0

for letter in l:

letter = letter.lower()

if letter in score.keys():

sum += score[letter]

return sum

print(scrabble_score("Word !"),scrabble_score("Hello World~!"))

9. 定义 censor 函数,传两个 str 参数:s, h;若 s 字符串中的单词包含 h(全小写)时(不区分大小写,暂时仅考虑空格分隔的单词),

将其隐藏,每个隐藏的字母显示为 *;该方法为不完善的隐藏字符方法,如隐藏字符后有标点,则仍会显示。(若需完善,可用正则表达式,后续学习)

如:censor("Fuck U fuck ... ","fuck")  会 return 字符串为 "**** U **** ... "  ;

censor("My qq is: 1000100, pls add my QQ","qq")  会 return 字符串为 "My ** is: 1000100, pls add my **"

备注: str.split(" ") 可根据 " " 分隔字符串并返回为list; 字符串相乘,如 "*"*5 可输出 "*****"

'''censor 1'''

def censor(s,h):

l = s.split(" ")

new_l = []

for i in range(len(l)):

word_l = l[i].lower()

if word_l==h:

new_l.append("*"*len(h))

else:

new_l.append(l[i])

return " ".join(new_l)

print(censor("Fuck U fuck ... ","fuck"))

print(censor("My qq is: 1000100, pls add my QQ","qq"))

'''censor 2'''

def censor(s,h):

l = s.split(" ")

new_l = []

for word in l:

if word.lower()==h:

new_l.append("*"*len(h))

else:

new_l.append(word)

return " ".join(new_l)

print(censor("Fuck U fuck ... ","fuck"))

print(censor("My qq is: 1000100, pls add my QQ","qq"))

10. 定义 count_i 函数,传两个参数 l, item:l 为一 list,item 为任意类型元素;return l 中包含 i 的个数 ;

如: count_i([1,2,3,4,2,1,3,1.0,"1"],1)         会 return 3    (1.0 也可算入;"1" 不可算入)

count_i(["b","a","ab","a","","A"], "a")     会 return 2

count_i([["a"],"a"], ["a"])  会 return 1;  count_i([["a"],"a"], ["a "])    会 return 0

'''count_item 1'''

def count_item(l,item):

count = 0

for i in range(len(l)):

if(l[i]==item):

count += 1

return count

print(count_item([1,2,3,4,2,1,3,1.0,"1"],1))

print(count_item(["b","a","ab","a","","A"], "a"))

print(count_item([["a"],"a"], ["a"]),count_item([["a"],"a"], ["a "]))

'''count_item 2'''

def count_item(l,i):

count = 0

for item in l:

if(item==i):

count += 1

return count

print(count_item([1,2,3,4,2,1,3,1.0,"1"],1))

print(count_item(["b","a","ab","a","","A"], "a"))

print(count_item([["a"],"a"], ["a"]),count_item([["a"],"a"], ["a "]))

11. 定义 purify 函数,传一 list 参数;去除该 list 中所有的奇数(该list中全为int元素)

如: purify([3,1,5,2,6,1,4])  会 return [2,6,4]

'''purify 1'''

def purify(l):

l_new = []

for i in range(len(l)):

if(l[i]%2==0):

l_new.append(l[i])

return l_new

print(purify([3,1,5,2,6,1,4]))

'''purify 2'''

def purify(l):

l_new = []

for i in l:

if(i%2==0):

l_new.append(i)

return l_new

print(purify([3,1,5,2,6,1,4]))

12. 定义 multiple 函数,传可变参数(该参数全为float),return 所有可变参数相乘的积,无参数则返回 None;

如:multiple(3,2) return 6;multiple(3.5,2) return 7.0;multiple(3.5,2,3) return 21.0;multiple(3,2,0,3,) return 0;

备注:函数调用可变个数的参数,在其参数名前加*,如*args,这些参数将被包装进一个元组

'''multiple 1'''

def multiple(*f):

m = 1

if(len(f)==0):

return None

else:

for i in range(len(f)):

m *= f[i]

return m

print(multiple(2,3),multiple(3.5,2),multiple(3.5,2,3),multiple())

'''multiple 2'''

def multiple(*f):

m = 1

if(len(f)==0):

return None

else:

for i in f:

m *= i

return m

print(multiple(2,3),multiple(3.5,2),multiple(3.5,2,3),multiple())

13. 定义 remove_duplicate 函数,传一参数 list,删除 list 中重复的项;

如 remove_duplicate([1,2,3,1.0,1,"1"]) return [1,2,3,"1"]

备注:可用转换为集合set 来去重,但无法保留 list 之前的顺序

'''remove_duplicate 1'''

def remove_duplicate(l):

l_new = []

for i in range(len(l)):

if l[i] not in l_new:

l_new.append(l[i])

return l_new

print(remove_duplicate([1,2,3,1.0,1,"1"]))

'''remove_duplicate 2'''

def remove_duplicate(l):

l_new = []

for i in l:

if i not in l_new:

l_new.append(i)

return l_new

print(remove_duplicate([1,2,3,1.0,1,"1"]))

'''remove_duplicate 3'''

def remove_duplicate(l):

return list(set(l))

print(remove_duplicate([1,2,3,1.0,1,"1"]))

14. 定义 median 函数,传一参数 list,该 list 中元素均为float或int数值;

若 list 长度为奇数,return 该list 最中间的数;若 list 长度为偶数,return 该 list 最中间两个数的平均数;若 list 为空,return none

如 median([3,4,2]) return 3; median([7,2,3,4]) return 3.5  (3+4/2)

备注:须先对 list 排序,用 sorted(list_name)

'''median'''

def median(l):

l = sorted(l)

l_len = len(l)

if l_len == 0:

return None

elif l_len%2 == 1:

return l[int((l_len-1)/2)]

else:

return (l[int((l_len)/2)] + l[int((l_len)/2)-1])/2

print(median([]),median([3,4,2]),median([7,2,3,4]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值