第四周学习总结

1.打印1~10的数字以及每个数的平方、几何级数和阶乘

from math import factorial

def main():
print(‘%-10s%-10s%-10s%-10s’ % (‘数字’, ‘平方’, ‘几何级数’, ‘阶乘’))
for num in range(1, 11):
print(‘%-12d%-12d%-12d%-12d’ % (num, num * 2, 2 * num, factorial(num)))

if name == ‘main‘:
main()

2.设计一个函数,生成指定长度的验证码(由数字和大小写英文字母构成的随机字符串)

from random import randrange

def generate_code(length = 4):
all_chars = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST0123456789’
all_chars_length = len(all_chars)
code = ”
for _ in range(length):
index = randrange(all_chars_length)
code += all_chars[index]
return code

def main():
for _ in range(1, 11):
print(generate_code(4))

if name == ‘main‘:
main()

3.设计一个函数,统计字符串中英文字母和数字各自出现的次数

def count_number(string):
letter_count = 0
digital_number = 0
for ch in string:
if ‘a’ <= ch <= ‘z’ or ‘A’ <= ch <= ‘Z’:
letter_count += 1
elif ‘0’ <= ch <= ‘9’:
digital_number += 1
return letter_count,digital_number

def main():
print(count_number(‘abgdggd6666’))
print(count_number(‘fssgs535353ddd’))

if name == ‘main‘:
main()

4.设计一个函数,判断传入的整数列表(要求元素个数大于2个)中的元素能否构成等差数列

def foo(list):
list_length = len(list)
assert list_length >2
new_list = sorted(list)
for index in range(2,list_length):
if list[index] - list[index-1]!=list[index-1]-list[index-2]:
return False
return True

def main():
list1=[1,4,5,6,7,9]
list2=[100,300,400,500,600,700,900]
print(foo(list1))
print(foo(list2))
if name==’main‘:
main()

5.设计一个函数,计算字符串中所有数字序列的和

from re import findall
def find_number(my_string):
total=0
my_number = map(int, findall(‘\d+’, my_string))
for number in my_number:
total += number
return total

def main():
print(find_number(‘abc3456gh’))
print(find_number(‘db583883’))

if name==’main‘:
main()

6.设计一个函数,对传入的字符串(假设字符串中只包含小写字母和空格)进行加密操作,加密的规则是a变d,b变e,c变f,……,x变a,y变b,z变c,空格不变,返回加密后的字符串

def caesar_encrypt(string):
base = ord(‘a’)
encrypted_string = ”
for ch in string:
if ch != ’ ‘:
curr = ord(ch)
diff = (curr - base + 3) % 26
ch = chr(base + diff)
encrypted_string += ch
return encrypted_string

def main():
print(caesar_encrypt(‘attack at dawn’)) # dwwdfn dw gdzq
print(caesar_encrypt(‘dinner is on me’)) # glqqhu lv rq ph

if name == ‘main‘:
main()

PS:发现一个学习编程的好方法,就是写代码之前一定要先打草稿,什么意思呢?就是先想清楚自己的思路,可以在纸上写出逻辑关系图,然后再写代码,明晚继续总结,晚安

(1)count

count方法用于统计字符串里某个字符出现的次数。
str.count(sub, start=0, end=len(string))]
sub—搜索的子字符
start—字符串开始搜索的位置,默认第一个字符,索引0
end—字符串结束搜素的位置,字符中第一个字符的索引为0,默认为字符串的最后一个位置。
实例:str=’aaabbbbccccc’
sub = ‘a’
print(str.count(str))#起始位置默认值,则搜素范围是整个字符串
结果:3

(2)counter

1.求数组中每个元素出现的次数
a = [1,4,2,3,2,3,4,2]
from collections import Counter
print (Counter(a))
打印结果:
Counter({2: 3, 3: 2, 4: 2, 1: 1})

结果表示:元素2出现了3次;元素3出现了2次;元素4出现了2次;元素1出现了1次。

2.求数组中出现次数最多的元素
from collections import Counter
a = [1,4,2,3,2,3,4,2]
countNumber = Counter(a) #打印a中每个元素出现的次数
mostNumber = countNumber .most_commo(2)) #most_comm()函数打印数组中出现次数最多的元素,2表示:输出几个出现次数最多的元素
运行结果:
[(2, 3), (4, 2)]

猜你喜欢

转载自blog.csdn.net/u014229742/article/details/79707249