编程小白第一本入门书(二)

1.检查手机号

 1 def sendTextNumber():
 2     
 3     CN_mobile = ['134','135','136','137','138','139',
 4                  '150','151','152','157','158','159',
 5                  '182','183','184','187','188','147','178','1705']
 6     CN_union = ['130','131','132','155','156','185','186','145','176','1709']
 7     CN_telecom = ['133','153','180','181','189','177','1700']
 8     
 9     phone_num = input('Enter your number:')
10     
11     if len(phone_num) != 11:
12         print('Invalid length,your number should be in 11 digits')
13         sendTextNumber()
14     elif phone_num[:3] in CN_mobile or phone_num[:4] == '1705':
15         print("Operator:China mobile")
16         print("We'are sending verification coed via text to your phone:",phone_num)
17     elif phone_num[:3] in CN_union or phone_num[:4] == '1709':
18         print("Operator:China union")
19         print("We'are sending verification coed via text to your phone:",phone_num)
20     elif phone_num[:3] in CN_telecom or phone_num[:4] == '1700':
21         print("Operator:China telecom")
22         print("We'are sending verification coed via text to your phone:",phone_num)
23     else:
24         print("No such a operator")
25         sendTextNumber()
1 sendTextNumber()

python3里面input默认接收到的是str类型:

1 a = input("input number:")
2 type(a)
>>>input number:12345
>>>Out[8]:str
 1 def sendTextNumber():
 2     
 3     CN_mobile = [134,135,136,137,138,139,
 4                  150,151,152,157,158,159,
 5                  182,183,184,187,188,147,178,1705]
 6     CN_union = [130,131,132,155,156,185,186,145,176,1709]
 7     CN_telecom = [133,153,180,181,189,177,1700]
 8     
 9     phone_num = input('Enter your number:')
10     num1 = int(phone_num[:3])    #转int
11     num2 = int(phone_num[:4])    #转int
12     if len(phone_num) != 11:
13         print('Invalid length,your number should be in 11 digits')
14         sendTextNumber()
15     elif num1 in CN_mobile or num2 == 1705:
16         print("Operator:China mobile")
17         print("We'are sending verification coed via text to your phone:{}".format(phone_num))
18     elif num1 in CN_union or num2 == 1709:
19         print("Operator:China union")
20         print("We'are sending verification coed via text to your phone:{}".format(phone_num))
21     elif num1 in CN_telecom or num2 == 1700:
22         print("Operator:China telecom")
23         print("We'are sending verification coed via text to your phone:{}".format(phone_num))
24     else:
25         print("No such a operator")
26         sendTextNumber()
27 sendTextNumber()

 2.extend():向列表添加多个元素

1 aList = [123,'xyz','zara','abc']
2 bList = ['manni',2009]
3 aList.extend(bList)
4 print(aList)
>>>[123, 'xyz', 'zara', 'abc', 'manni', 2009]

3.update():向字典添加多个元素

1 dict1 = {'name':'Mary','Age':27}
2 dict2 = {'sex':'female'}
3 dict1.update(dict2)
4 print(dict1)
>>>{'name': 'Mary', 'Age': 27, 'sex': 'female'}

4.zip()

1 a = [1,2,3]
2 b =[4,5,6]
3 c = [4,5,6,7,8]
4 zipped = zip(a,b) #将可迭代对象中对应的元素打包成一个个元组
5 zipped            #返回由这些元组组成的对象
>>><zip at 0x1abbd618848>
6 list(zipped)     #转化为列表
>>>[(1, 4), (2, 5), (3, 6)]
7 list(zip(a,c))  #元素的个数与最短的列表一致
>>>[(1, 4), (2, 5), (3, 6)]
8 a1,a2 = zip(*zip(a,b))  #zip(*)与zip相反,理解为解压
9 a1
>>>(1, 2, 3)
10 list(a2)
>>>[4, 5, 6]

 5.解析式

使用解析式的效率更高。虚线前理解为想要放在列表中的元素。

1 a = [i**2 for i in range(1,10)]
2 b = [n for n in range(1,10) if n%2 == 0]
3 c = [letter.lower() for letter in 'ABCDEFGHI']

字典推导式:

1 d = {i:i+1 for i in range(4)}
2 f = {i:j.upper() for i,j in zip(range(1,6),'abcde')}

6.enumerate():给出数据和下标,一般用在for循环之中

1 seasons = ['Spring','Summer','Fall','Winter']
2 enumerate(seasons)
>>><enumerate at 0x1abbd62fd38>
3 list(enumerate(seasons))
>>>[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
4 list(enumerate(seasons,start=1))
>>>[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

for循环使用:

1 seq = ['one','two','three']
2 for i,element in enumerate(seq):
3     print(i,element)
>>>0 one
>>>1 two
>>>2 three
1 letters = list('abcdefg')
2 for num,letter in enumerate(letters):
3     print(letter,'is',num+1)
a is 1
b is 2
c is 3
d is 4
e is 5
f is 6
g is 7

 7.split()方法:指定分隔符对字符串进行切片

1 str = "Line1-abcedf \nLine2-abc \nLine4-abcd"
2 print(str.split())      #默认以空格为分隔符,包含 \n,返回分割后的字符串列表
3 print(str.split(' ',1)) #以空格为分隔符,分割1次,分割成2个
['Line1-abcedf', 'Line2-abc', 'Line4-abcd']
['Line1-abcedf', '\nLine2-abc \nLine4-abcd']
1 txt = "Google#Runoob#Taobao#Facebook"
2 print(txt.split("#",1))
3 print(txt.split("#"))
['Google', 'Runoob#Taobao#Facebook']
['Google', 'Runoob', 'Taobao', 'Facebook']

8.count()方法:统计字符串里某个字符出现的次数。

1 str = "this is string example...wow!!!"
2 sub1 = "i"
3 print(str.count(sub1))
4 sub2 = "wow"
5 print(str.count(sub2))
3
1

9.词频统计

1 path = "C:/Users/LKX/Desktop/Alice.txt"
2 with open(path,'r') as text:
3     words = text.read().split()
4     for word in words:
5         print("{}-{} times".format(word,words.count(word)))

部分输出:

ALICE'S-1 times
ADVENTURES-1 times
IN-1 times
WONDERLAND-1 times
Lewis-1 times
Carroll-1 times
THE-1 times
MILLENNIUM-1 times
FULCRUM-1 times
EDITION-1 times
3.0-1 times
CHAPTER-1 times
I-19 times
Down-1 times
the-65 times
Rabbit-Hole-1 times
Alice-17 times
was-42 times
beginning-1 times
to-50 times
get-6 times
very-18 times
tired-1 times
of-33 times
sitting-1 times
by-6 times
her-17 times
sister-2 times
on-9 times
the-65 times
bank,-1 times
and-42 times
of-33 times

问题:带有标点符号的单词、重复展示、大小写不区分。

 1 import string
 2 
 3 path = "C:/Users/LKX/Desktop/Alice.txt"
 4 
 5 with open(path,'r') as text:
 6     words = [raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]#去标点,转小写
 7     words_index = set(words) #去重
 8     counts_dict = {index:words.count(index) for index in words_index}  #创建字典,键为单词,值为次数
 9     
10 for word in sorted(counts_dict,key=lambda x:counts_dict[x],reverse=True): #按值(出现的次数)降序排列
11     print("{}-{} times".format(word,counts_dict[word]))
the-68 times
to-52 times
she-52 times
and-48 times
it-48 times
was-43 times
a-40 times
of-33 times
i-23 times
down-22 times
in-21 times
alice-20 times
her-19 times
very-18 times
that-18 times
had-17 times
but-16 times
you-16 times
not-14 times
as-13 times
for-12 times
or-12 times
think-11 times
with-10 times
on-10 times
there-10 times
all-10 times
no-9 times
little-9 times
do-9 times
up-9 times
how-9 times
so-9 times
this-9 times
at-9 times
out-8 times
me-8 times
see-8 times
time-8 times
be-8 times
if-7 times
were-7 times
would-7 times
what-7 times
about-7 times
well-6 times
rabbit-6 times
one-6 times
when-6 times
like-6 times
thought-6 times
went-6 times
get-6 times
by-6 times
say-6 times
never-5 times
nothing-5 times
herself-5 times
way-5 times
much-5 times
shall-5 times
suddenly-5 times
eat-5 times
could-5 times
either-5 times
before-5 times
wonder-5 times
things-4 times
moment-4 times
bottle-4 times
which-4 times
my-4 times
into-4 times
is-4 times
here-4 times
off-4 times
key-4 times
oh-4 times
looked-4 times
found-4 times
again-4 times
fall-4 times
upon-4 times
they-4 times
too-4 times
cats-4 times
then-4 times
door-4 times
dinah-4 times
bats-4 times
hall-4 times
large-3 times
first-3 times
long-3 times
through-3 times
did-3 times
any-3 times
marked-3 times
poison-3 times
getting-3 times
tried-3 times
right-3 times
ever-3 times
began-3 times
might-3 times
said-3 times
know-3 times
round-3 times
another-3 times
even-3 times
over-3 times
sort-3 times
after-3 times
came-3 times
rabbit-hole-3 times
pictures-3 times
passage-3 times
fell-3 times
look-3 times
dear-3 times
just-3 times
book-3 times
dark-3 times
them-3 times
drink-3 times
use-3 times
from-3 times
nice-3 times
golden-2 times
bat-2 times
behind-2 times
small-2 times
head-2 times
mind-2 times
an-2 times
ran-2 times
going-2 times
ask-2 times
though-2 times
saw-2 times
corner-2 times
great-2 times
whether-2 times
rules-2 times
deep-2 times
people-2 times
that's-2 times
put-2 times
those-2 times
good-2 times
once-2 times
without-2 times
it'll-2 times
feet-2 times
their-2 times
jar-2 times
took-2 times
seemed-2 times
hear-2 times
several-2 times
such-2 times
latitude-2 times
watch-2 times
table-2 times
sleepy-2 times
air-2 times
they'll-2 times
close-2 times
late-2 times
white-2 times
alice's-2 times
saying-2 times
rather-2 times
thump-2 times
made-2 times
many-2 times
across-2 times
other-2 times
waistcoat-pocket-2 times
soon-2 times
remember-2 times
come-2 times
have-2 times
seen-2 times
wish-2 times
longitude-2 times
considering-2 times
begun-2 times
miles-2 times
rate-2 times
anything-2 times
low-2 times
i've-2 times
sister-2 times
didn't-2 times
however-2 times
cupboards-2 times
still-2 times
falling-2 times
turned-2 times
among-2 times
hot-2 times
hand-2 times
noticed-2 times
doors-2 times
somewhere-2 times
it's-2 times
got-2 times
words-2 times
earth-2 times
quite-1 times
knelt-1 times
poor-1 times
toffee-1 times
every-1 times
away-1 times
wise-1 times
wondered-1 times
fortunately-1 times
house-1 times
afterwards-1 times
along-1 times
stairs-1 times
cool-1 times
dreamy-1 times
answer-1 times
presently-1 times
glad-1 times
printed-1 times
ventured-1 times
next-1 times
taught-1 times
conversation-1 times
ought-1 times
pink-1 times
tired-1 times
because-1 times
felt-1 times
natural-1 times
lost-1 times
read-1 times
should-1 times
only-1 times
spoke--fancy-1 times
twice-1 times
stopping-1 times
loveliest-1 times
flowers-1 times
book-shelves-1 times
tea-time-1 times
waiting-1 times
locks-1 times
burning-1 times
curtsey-1 times
inches-1 times
go-1 times
sometimes-1 times
carroll-1 times
fact-1 times
knife-1 times
four-1 times
whiskers-1 times
walked-1 times
lewis-1 times
sound-1 times
filled-1 times
top-1 times
wouldn't-1 times
trying-1 times
few-1 times
true-1 times
saucer-1 times
tumbling-1 times
pegs-1 times
feel-1 times
side-1 times
children-1 times
afraid-1 times
antipathies-1 times
zealand-1 times
word-1 times
hold-1 times
sadly-1 times
trouble-1 times
finding-1 times
dipped-1 times
cherry-tart-1 times
field-1 times
manage-1 times
edition-1 times
led-1 times
earnestly-1 times
miss-1 times
sides-1 times
later-1 times
really-1 times
matter-1 times
fear-1 times
your-1 times
new-1 times
high-1 times
histories-1 times
will-1 times
funny-1 times
been-1 times
to-night-1 times
curtain-1 times
daisies-1 times
almost-1 times
home-1 times
fulcrum-1 times
certainly-1 times
rat-hole-1 times
mice-1 times
make-1 times
row-1 times
ears-1 times
bright-1 times
longer-1 times
begin-1 times
name-1 times
three-legged-1 times
brave-1 times
fountains-1 times
orange-1 times
find-1 times
under-1 times
label-1 times
picking-1 times
alas-1 times
listening-1 times
hurt-1 times
leaves-1 times
some-1 times
dry-1 times
friends-1 times
walk-1 times
hurrying-1 times
end-1 times
telescope-1 times
dinah'll-1 times
knowledge-1 times
likely-1 times
middle-1 times
fifteen-1 times
managed-1 times
couldn't-1 times
australia-1 times
perhaps-1 times
killing-1 times
else-1 times
day-1 times
wander-1 times
talking-1 times
finished-1 times
than-1 times
its-1 times
maps-1 times
pine-apple-1 times
curiosity-1 times
3.0-1 times
i'll-1 times
finger-1 times
cat-1 times
bleeds-1 times
tunnel-1 times
must-1 times
let-1 times
peeped-1 times
having-1 times
tell-1 times
chapter-1 times
plenty-1 times
tiny-1 times
dream-1 times
shelves-1 times
curtseying-1 times
asking-1 times
girl-1 times
dozing-1 times
schoolroom-1 times
walking-1 times
happened-1 times
showing-1 times
centre-1 times
sitting-1 times
letters-1 times
hung-1 times
lately-1 times
written-1 times
simple-1 times
certain-1 times
indeed-1 times
lessons-1 times
marmalade-1 times
own-1 times
itself-1 times
ma'am-1 times
overhead-1 times
shut-1 times
bank-1 times
garden-1 times
belong-1 times
are-1 times
lit-1 times
taste-1 times
worth-1 times
distance--but-1 times
longed-1 times
except-1 times
half-1 times
stupid-1 times
fitted-1 times
paper-1 times
now-1 times
impossible-1 times
back-1 times
world-1 times
daisy-chain-1 times
lock-1 times
reading-1 times
happen-1 times
hoping-1 times
beds-1 times
shoulders-1 times
flashed-1 times
country-1 times
toast-1 times
pleasure-1 times
empty-1 times
wondering-1 times
turkey-1 times
drop-1 times
out-of-the-way-1 times
glass-1 times
truth-1 times
catch-1 times
ignorant-1 times
usually-1 times
started-1 times
telescopes-1 times
i'm-1 times
remarkable-1 times
aloud-1 times
opened-1 times
adventures-1 times
deeply-1 times
why-1 times
somebody-1 times
flavour-1 times
custard-1 times
shutting-1 times
sticks-1 times
beginning-1 times
fallen-1 times
disappointment-1 times
mouse-1 times
hanging-1 times
seem-1 times
hope-1 times
sight-1 times
actually-1 times
cut-1 times
roast-1 times
eaten-1 times
nor-1 times
you're-1 times
grand-1 times
near-1 times
downward-1 times
who-1 times
burn-1 times
please-1 times
poker-1 times
red-hot-1 times
heap-1 times
question-1 times
conversations-1 times
beautifully-1 times
solid-1 times
opportunity-1 times
buttered-1 times
passed-1 times
jumped-1 times
thousand-1 times
idea-1 times
heads-1 times
disagree-1 times
hedge-1 times
delight-1 times
burnt-1 times
beasts-1 times
milk-1 times
she'll-1 times
straight-1 times
yes-1 times
pop-1 times
wind-1 times
eyes-1 times
slowly-1 times
doorway-1 times
larger-1 times
labelled-1 times
locked-1 times
practice-1 times
hurried-1 times
learnt-1 times
wild-1 times
listen-1 times
roof-1 times
mixed-1 times
unpleasant-1 times
sooner-1 times
occurred-1 times
take-1 times
open-1 times
making-1 times
bit-1 times
millennium-1 times
lamps-1 times
forgotten-1 times
hurry-1 times
past-1 times
second-1 times
neck-1 times
coming-1 times
wonderland-1 times
View Code

1.string.punctuation:所有的标点符号。

1 import string
2 print(string.punctuation)
output:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

2.strip()方法:用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

1 str = "123abcrunboo321"
2 print(str.strip("12"))
3abcrunboo3
1 str = "123abcrunboo3221"
2 print(str.strip("23b1"))
abcrunboo
1 str = "000003210runboo01230000"
2 print(str.strip("0"))
3210runboo0123

3.set():创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

1 test = ['one','two','three','one','four']
2 set(test)
{'four', 'one', 'three', 'two'}
3 for index in set(test):
4     print(index)
three
four
one
two

4.函数sorted():对所有可迭代的对象进行排序操作。返回重新排列的列表。

1 counts_dict = {'the':25,'alice':35,'run':19}
2 result = sorted(counts_dict,key=lambda x:counts_dict[x],reverse=True) #值降序排列
3 print(result)
['alice', 'the', 'run']

猜你喜欢

转载自www.cnblogs.com/direwolf22/p/12658619.html