1 统计《水调歌头·明月几时有》字符出现次数。 明月几时有,把酒问青天。 不知天上宫阙,今夕是何年? 我欲乘风归去,又恐琼楼玉宇,高处不胜寒。 起舞弄清影,何似在人间! 转朱阁,低绮户,照无眠。 不应有恨,何事长向别时圆? 人有悲欢离合,月有阴晴圆缺,此事古难全。 但愿人长久,千里共婵娟。
N = 明月几时有,把酒问青天。不知天上宫阙,今夕是何年?我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间!转朱阁,低绮户,照无眠。不应有恨,何事长向别时圆?人有悲欢离合,月有阴晴圆缺,此事古难全。但愿人长久,千里共婵娟。"
代码:
a_counts = {}
for i in N:
if i in a_counts:
a_counts[i] +=1
else:
a_counts[i] =1
for key in a_counts:
print("%s 出现了%d 次"%(key, a_counts[key]))
运行结果:
明 出现了1 次
月 出现了2 次
几 出现了1 次
时 出现了2 次
有 出现了4 次
, 出现了11 次
把 出现了1 次
酒 出现了1 次
问 出现了1 次
青 出现了1 次
天 出现了2 次
。 出现了5 次
不 出现了3 次
知 出现了1 次
上 出现了1 次
宫 出现了1 次
阙 出现了1 次
今 出现了1 次
夕 出现了1 次
是 出现了1 次
何 出现了3 次
年 出现了1 次
? 出现了2 次
我 出现了1 次
欲 出现了1 次
乘 出现了1 次
风 出现了1 次
归 出现了1 次
去 出现了1 次
又 出现了1 次
恐 出现了1 次
琼 出现了1 次
楼 出现了1 次
玉 出现了1 次
宇 出现了1 次
高 出现了1 次
处 出现了1 次
胜 出现了1 次
寒 出现了1 次
起 出现了1 次
舞 出现了1 次
弄 出现了1 次
清 出现了1 次
影 出现了1 次
似 出现了1 次
在 出现了1 次
人 出现了3 次
间 出现了1 次
! 出现了1 次
转 出现了1 次
朱 出现了1 次
阁 出现了1 次
低 出现了1 次
绮 出现了1 次
户 出现了1 次
照 出现了1 次
无 出现了1 次
眠 出现了1 次
应 出现了1 次
恨 出现了1 次
事 出现了2 次
长 出现了2 次
向 出现了1 次
别 出现了1 次
圆 出现了2 次
悲 出现了1 次
欢 出现了1 次
离 出现了1 次
合 出现了1 次
阴 出现了1 次
晴 出现了1 次
缺 出现了1 次
此 出现了1 次
古 出现了1 次
难 出现了1 次
全 出现了1 次
但 出现了1 次
愿 出现了1 次
久 出现了1 次
千 出现了1 次
里 出现了1 次
共 出现了1 次
婵 出现了1 次
娟 出现了1 次
2 统计英文儿歌《twinkle twinkle little star》中,使用到的单词及其出现次数。要求去除单词大小写的影响,不统计标点符号的个数,并按降序输出。
Twinkle, twinkle, little star,
How I wonder what you are!
Up above the world so high,
Like a diamond in the sky.
Twinkle, twinkle, little star,
How I wonder ## 标题what you are!
When the blazing sun is gone,
When he nothing shines upon,
Then you show your little light,
Twinkle, twinkle, all the night.
Twinkle, twinkle, little star,
How I wonder what you are!
代码:
lines = song.lower().strip()\
.replace(",","").replace(".",'').replace("!",'').replace("?",'').split("\n")
words = []
word_counts={}
for line in lines:
words += line.split(" ")
for word in words:
if word in word_counts:
word_counts[word] = word_counts[word] + 1
else:
word_counts[word] = 1
word_key_count = []
for key in word_counts:
key_count = [key, word_counts[key]]
word_key_count.append(key_count)
#冒泡排序 此处也可以用sort函数代替。
for index in range(1,len(word_key_count)):
for sub_index in range(index,0,-1):
if word_key_count[sub_index][1] > word_key_count[sub_index - 1][1]:
temp = word_key_count[sub_index - 1]
word_key_count[sub_index - 1] = word_key_count[sub_index]
word_key_count[sub_index] = temp
for index in range(len(word_key_count)):
print(word_key_count[index][0],word_key_count[index][1])
3 在控制台输出如图所示一个8层的杨辉三角。
杨辉三角介绍:
每个数等于它上方两数之和
每行数字左右对称,由1开始逐渐变大
第n行的数字有n项,将n取8
代码:
line = [1]
print(line)
#其余7行
```python
n = 7
for i in range(n):
temp_line = [] #保存下一行数字序列的列表
for index in range(len(line) + 1): #第n+1行列表长度=第n行列表长度+1
if index == 0: #列表中的第1个元素的值是1
temp_line.append(1)
elif index == len(line): #列表中的最后1个元素的值是1
temp_line.append(1)
else:
#列表中的数的值等于它上方两数之和
temp_line.append(line[index] + line[index - 1])
line = temp_line #更新行数列
print(line)
# 4 中华人民共和国居民身份证号码由17 位数字和1位校验码组成。其中,前6位为所在地编号,第7~14 位为出生年月日,第15~17位为登记流水号,其中第17位偶数为女性,奇数为男性。校验码的生成规则如下: 将前面的身份证号码17位数分别乘以不同的系数。第1~17位的系数分别为: 7,9,10,5,8 4,2,1,6,3,7,9,10,5,8,4,2,将这17 位数字和系数相乘的结果相加,用相加的结果与11求模,余数结果只可能是0,1,2,3,4,5,6,7,8,9,10这11个数字,它们分别对应的最后一位身份证的号码为1,0,x,9,8,7,6,5,4,3,2。例如,如果余数是2,最后一位数字就是罗马数字x,如果余数是10,则身份证的最后一位就是2。 请设计程序实现输入18位身份证号,辨别其真伪。若为真,则进一步判断性别: 若不是18位或身份证号非法,则提示重新输入。 提示:定义如下两个元组,对输入字符串进行遍历。 factor=(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2) last=("1","O","x","9","8","7","6","5","4","3","2") 例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。 首先:我们计算3*7+4*9+0*10+5*5+...+1*2,前17位的乘积和是189 然后:用189除以11得出的结果是商17余2 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。
```python
```python
```python
```python
```python
```python
```python
```python
```python
id_card=input('请输入身份证号码:')
jy = id_card[len(id_card)-1:len(id_card)]
if len(id_card) == 18:
x= (7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
s=0
for i in range(1,len(id_card)):
e = id_card[i-1:i]
s = s + int(e)*x[i-1]
b = s%11
y=("1","O","x","9","8","7","6","5","4","3","2")
c = y[b]
if jy == c:
print('经计算校验码为',c,'和实际相同,身份证合法!')
else:
print('经计算校验码为',c,'和实际不同,身份证不合法!')