2020-04
15

反正这是我的答案

By xrspook @ 19:44:55 归类于: 扮IT

题目摆在这里,没有确切的答案,下面是我的解答,对不对不知道。words.txt资源在这里。

There are solutions to these exercises in the next section. You should at least attempt each one before you read the solutions.

Exercise 1: Write a program that reads words.txt and prints only the words with more than 20 characters (not counting whitespace).

Exercise 2: In 1939 Ernest Vincent Wright published a 50,000 word novel called Gadsby that does not contain the letter “e”. Since “e” is the most common letter in English, that’s not easy to do. In fact, it is difficult to construct a solitary thought without using that most common symbol. It is slow going at first, but with caution and hours of training you can gradually gain facility. All right, I’ll stop now. Write a function called has_no_e that returns True if the given word doesn’t have the letter “e” in it. Write a program that reads words.txt and prints only the words that have no “e”. Compute the percentage of words in the list that have no “e”.

Exercise 3: Write a function named avoids that takes a word and a string of forbidden letters, and that returns True if the word doesn’t use any of the forbidden letters. Write a program that prompts the user to enter a string of forbidden letters and then prints the number of words that don’t contain any of them. Can you find a combination of 5 forbidden letters that excludes the smallest number of words?

Exercise 4: Write a function named uses_only that takes a word and a string of letters, and that returns True if the word contains only letters in the list. Can you make a sentence using only the letters acefhlo? Other than “Hoe alfalfa”?

Exercise 5: Write a function named uses_all that takes a word and a string of required letters, and that returns True if the word uses all the required letters at least once. How many words are there that use all the vowels aeiou? How about aeiouy?

Exercise 6: Write a function called is_abecedarian that returns True if the letters in a word appear in alphabetical order (double letters are ok). How many abecedarian words are there?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
fin = open('words.txt') # 第1小问
for line in fin:
    if len(line) >= (20+2):
        word = line.strip()
        print(word)
# counterdemonstrations
# hyperaggressivenesses
# microminiaturizations
 
def has_no_e(word): # 第2小问
    for letter in word:
        if letter == 'e':
            return False
    return True
fin = open('words.txt')
all = 0
count = 0
for line in fin:
    word = line.strip()
    all = all + 1
    if has_no_e(word):
        print(word)
        count = count + 1
print(count, 'words without e')
print('{:.0%}'.format(count/all), 'words without e')
# ...
# zymosis
# zymotic
# zymurgy
# 37641 words without e
# 33% words without e
 
def avoids(word, x): # 第3小问,最后一个问题举手投降
    for letterw in word:
        for letterx in x:
            if letterw == letterx:
                return False
    return True
fin = open('words.txt')
x = input('withtout: ')
num = 0
# word = 'jwrojgre' # input('word is ')
# print(avoids(word, x))
for line in fin:
    word = line.strip()
    if avoids(word, x):
        num = num + 1
print(num, 'words without', x)
# withtout: aeiou
# 107 words without aeiou
# count = 0
# import itertools
# for i in itertools.combinations('abcdefghijklmnopqrstuvwxyz', 5):
#     print(''.join(i))
#     count = count + 1
# print(count) # 65780个排列组合的可能性啊啊啊啊啊啊
 
 
def uses_only(word, x): # 第4小问
    for letter in word:
        if letter not in x:
            return False
    return True
word = input('word is ')
x = input('uses is ')
print(uses_only(word, x))
# word is abc
# uses is efg
# False
 
def uses_all(word, x): # 第5小问
    for letter in x:
        if letter not in word:
            return False
    return True
fin = open('words.txt')
x = input('must use: ' )
num = 0
for line in fin:
    word = line.strip()
    if uses_all(word, x):
        num = num + 1
print(num, 'words with', x)
# must use: aeiou
# 598 words with aeiou
# must use: aeiouy
# 42 words with aeiouy
 
def is_abecedarian(word): # 第6小问
    index = 1
    while index < len(word) - 1:
        if ord(word[index-1]) > ord(word[index]):
            return False
        index = index + 1
    return True
fin = open('words.txt')
num = 0
for line in fin:
    word = line.strip()
    if is_abecedarian(word):
        num = num + 1
print(num, 'words is abecedarian')
# 1573 words is abecedarian
2020-04
15

字符偏移加密

By xrspook @ 13:28:09 归类于: 扮IT

本来我根本没考虑字母以外的那些怎么办,测试过参考答案以后,发现原来字母以外的东西原始输出,于是我也这般弄了,等于再加一个是否字母的判断,折腾。不告诉人家怎么把字符合并成字符串,我就只好准备两个对象二人转连接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def rotate_word(something, n): # a-z: 97-122, A-Z: 65-90
    newletter1 = ''
    for letter in something:
        if ord(letter) < ord('A') or ord('Z') < ord(letter) < ord('a') or ord('z') < ord(letter):
            newletter2 = newletter1 + letter
        else:
            if ord(letter) + n > ord('z'):
                newletter2 = newletter1 + chr(ord(letter) + n - 26)
            elif ord('a') > ord(letter) + n > ord('Z'):
                newletter2 = newletter1 + chr(ord(letter) + n - 26)
            else:
                newletter2 = newletter1 + chr(ord(letter) + n)
        newletter1 = newletter2
    return newletter2
something = input('please write something: ')
n = int(input('how many shifts do you want: '))
print('before:', something)
print('after :', rotate_word(something, n))
# please write something: IBM
# how many shifts do you want: -1
# before: IBM
# after : HAL
# please write something: g858^h{O
# how many shifts do you want: 6
# before: g858^h{O
# after : m858^n{U
2020-04
15

我要早睡

By xrspook @ 8:54:49 归类于: 烂日记

昨天晚上我的确提早回宿舍了,9点多一点我就回宿舍。之前我的打算是7点半就开始运动,那么9点之前我就可以回宿舍,但是,我还是拖延症到了8点才开始。运动很愉快,电影也很愉快。感觉我已经好久都没看过这么愉快的电影。过去好些时间,我都在看国产片,之所以这样,因为我对欧美电影已经失去了兴趣。大多数情况下,我在看国产片,也会看一下印度电影或者韩国电影,日本电影过于文艺,我有点难以接受。难以接受归难以接受,也总比根本不看好。

现在我已经不敢看我自己的记录了,感觉我已经接近了两个月大姨妈没来。到底什么时候要来?我完全说不准,因为貌似一点征兆都没有。唯一能拯救我的就只有早睡。肥胖跟大姨妈两个的关系很暧昧。对我来说,肥胖就意味着大姨妈一定不靠谱,而大姨妈不靠谱就意味着肥胖是条不归路。所以他俩到底是谁先挑起这个死循环,我至今没摸透,但可以确定的是,晚睡直接会导致我的大姨妈不来。要我做到10点半就睡觉几乎是不可能的事。如果我要做到10点半就睡觉,意味着9点半之前我必须回到宿舍,开始洗澡洗衣服,然后做一下其它。从前这对我来说太简单,但现在,这对我来说,不是一般的难。昨晚我的确做到了早回宿舍,我10点之前就已经洗完澡。但问题是,因为今天审计要过来,所以我又加班了一个小时。日常的工作15分钟以内我就搞定了,但余下的事情,不断地核对数据,不断地这个表那个表耗费了我不少时间,虽然我觉得自己的核对思路还是挺清晰的,因为我就只是重复那几件事而已,但是还是要时间。因为是在自己的笔记本上操作。屏幕太小,数字键不是我习惯的小键盘。虽然过去好些时间我已经在努力在练习用字母上面的一行数字,而不只靠小键盘过日子。有些时候,操控那一行数字,我可以做到条件反射,比如在输入日期的时候,2020这个数字我已经很熟练了,但是叫我输入一段数字的时候,我总是要想一想那个数字在哪个位置,应该用哪个手指去点击。大概在这种情况下,你或许会觉得我直接看着那个数字用一根手指按会更快,但是我还是纠结地把10根手指都放在上面,想一想我应该用哪个,眼睛盯着显示器,保证自己没有按错。

已经在这个单位干了12年,这是我第一次遇到审计的人过来查我们的东西。其实准确来说不是我们的东西,那是总公司的东西。审计本来是去查总公司的,但是总公司是一个汇总,所以他们又下到了基层单位去查。过去这些年,我遇到过不少的检查组。因为我们是省直单位,所以相对来说东莞市来查的几率会低一点,虽然我们单位的粮食存量不少,但相对来说,其实跨省和国家来检查的也不是很多。大型的清仓查库都被我碰上了,完全没出现什么状况,因为实际上也没有状况。小型的事务所之类,每年都要来一次。每年上面的监管单位派过来的事务所都不一样,大概是免得我们去搞关系。即便这样的随机抓取,也不曾发现过我们有什么大问题。可能会有一些细节上的差错,比如说手误写错日期之类的。但是根本性的问题一定不会存在。

今天过来查,昨天中午才告诉我有这么件事,才开始叫我们准备。我也说不上这是好还是不好,根本没时间给你准备,那平时是怎样,就怎么去面对。我不知道要紧张些什么,我只是陪同大家一同紧张而已。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress