1.英文字符频率统计。编写一个程序,对给定字符串出现的a-z字母频率进行分析,忽略大小写,采用降序方式输出。
s = input("please input a sentence:")
# To create a dictionary to collect the string and its frequency
counts = {}
# to judge if it is a english character and record the time it presented.
if i in s:
if 97<=ord(i)<=122 or 65<=ord(i)<=90:
counts[i]=counts.get(i,0)+1
# to transfer a dictionary to a list, and to sort with its value.
items = list(counts.items())
items.sort(key=lambda x : x[1], reverse = True)
for j in range(len(items)):
i,count = items[j]
print("{0:<5} {1:>5}".format(i,count))
2.中文字符频率统计。编写一个程序,对给定字符串中出现的全部字符(含中文字符)频率进行分析,采用降序方式输出。
s = input("please type a sentence in Chinese:")
counts = {}
for i in s:
if 19968 <= ord(i) <= 40869:
counts[i] = counts.get(i,0) + 1
items = list(count.items())
items.sort(key = lambda x:x[1],reverse =True)
for j in range(len(items)):
i,count = items[j]
print("{0:<10} {1:>5}".format(i,count)
3.随机密码生成。编写程序在26个字母和9个数字组成的列表中随机生成10个8位密码。
import random
times = eval(input('请输入生成密码个数:'))
#密码字符库
se = "abcdefghijklmnopqrstuvwxyz"
sn = "123456789"
#将密码可选字符以列表形式储存
l = list(se) + list(sn)
for i in range(times):
p = random.choices(l,k=8)
password = "".join(p) #组成一个字符串
print("password{}:{}".format(i+1,password))
random模块常用函数 | 功能描述 | 不同点 |
---|---|---|
random.choices(seq, weights=None, cum_weights=None, k=1) | 从 seq 序列中抽取 k 个元素,还可通过 weights 指定各元素被抽取的权重(代表被抽取的可能性高低)。 | 它实际选了k次,每次选后会放回,所以会出现同一个元素多次被选中的情况 |
random.sample(population, k) | 从 population 序列中随机抽取 k 个独立的元素。 | 一次选取K个元素,所以选出的K个元素不相同 |
4.重复元素判定。编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和输出测试结果的程序。
def Same_Func(l):
s = set(l)
if len(l) != len(s)
return True
lt = input("请输入一个列表:")
print(Same_Func(lt))
print(lt) #查看原来列表的值是否改变
其他方法
def ContainsDuplicate(nums):
# type nums: List[int]
#rtype: bool
nums.sort() #对素组列表排序
count = 0
while count < len(nums)-1:
if nums[count]==nums[count+1]:
return True
count += 1
return False
5.重复元素判定续。利用集合的无重复性改编上一个程序,获得一个更快更简洁的版本。
*看来上题希望我用其他方法
def Same_Func(l):
s = set(l)
if len(l) != len(s)
return True
lt = input("请输入一个列表:")
print(Same_Func(lt))
print(lt) #查看原来列表的值是否改变