Python 基础学习Chapter6

基础知识

1. 列表是什么

biclye = ['lisy','cannondale','redline']
print(biclye)
['lisy', 'cannondale', 'redline']

1.1 访问列表元素

biclye = ['lisy','cannondale','redline']
print(biclye[0])
lisy

1.2 索引从0而不是1开始

biclye = ['lisy','cannondale','redline']
print(biclye[1])
cannondale

1.3 索引可以为负值

biclye = ['lisy','cannondale','redline']
print(biclye[-1])
redline

2.列表中的方法

2.1 添加元素

2.1.1 在列表末尾插入从末尾插入
biclye = ['lisy','cannondale','redline']
biclye.append("ducati")
print(biclye)
['lisy', 'cannondale', 'redline', 'ducati']
2.1.2 在列表中间插入
biclye = ['lisy','cannondale','redline']
biclye.insert(2,'jack')
print(biclye)
['lisy', 'cannondale', 'jack', 'redline']

3. 删除元素

3.1 del删除
biclye = ['lisy','cannondale','redline']
del biclye[0]
print(biclye)
['cannondale', 'redline']
3.2 pop删除
biclye = ['lisy','cannondale','redline']

# pop的返回值是删除的元素,默认从末尾删除

poped_motorcycles = biclye.pop()  
print(biclye)
print(poped_motorcycles)
['lisy', 'cannondale']
redline

练习题

1.列表去重

city = [‘上海’, “广州”, “上海”, “成都”, “上海”, “上海”, “北京”, “上海”, “广州”, “北京”, “上海”]

(1)以city列表为操作数据,对列表数据进行去重处理

(2)打印输出去重后的列表

city = ['上海', "广州", "上海", "成都", "上海", "上海", "北京", "上海", "广州", "北京", "上海"] 
list = set(city)
print(list)
{'上海', '广州', '北京', '成都'}

2. 基本数值统计计算

from math import sqrt
def getn():
    nums=[]
    str=input("请输入数字(回车退出):")
    while str!="":
        nums.append(eval(str))
        str=input("请输入数字(回车退出):")
    return nums


def mide(num):
    s=0.0
    for n in num:
        s=s+n
    return s/len(num)

def dev(num,m):
    sd=0.0
    for n in num:
        sd=sd+(n-m)**2
    return sqrt(sd/(len(num)-1))

def med(num):
    new=sorted(num)
    lng=len(num)
    if lng%2==0:
        md=(new[lng//2-1]+new[lng//2])/2
    else:
        md=new[lng//2]
    return md
n=getn()
m=mide(n)
print("平均值:{},标准差:{:.2},中位数{}".format(m,dev(n,m),med(n)))

请输入数字(回车退出):2
请输入数字(回车退出):3
请输入数字(回车退出):6
请输入数字(回车退出):
平均值:3.6666666666666665,标准差:2.1,中位数3

3. 数据清洗

去除数据中的空字符串None、特殊符号等,只留下单词及序号,并去重。

原始数据:

[" pizza,100001"," None"," alex,100002 “,“egon,100003”,” ",“egg,100004+pig,100005”]

清洗后数据:

[‘pizza,100001’, ‘pig,100005’, ‘alex,100002’, ‘egg,100004’, ‘egon,100003’]

content=["  pizza,100001","  None","   alex,100002   ","egon,100003","  ","egg,100004+pig,100005"]
total_list=[]
for i in content:
    temp_str=i.strip()
    if temp_str=="None"or temp_str=="":
        pass
    else:
        listl = temp_str .split("+")
        total_list.extend(listl)
new_list = list(set(total_list))
print(new_list)
['pizza,100001', 'alex,100002', 'egon,100003', 'egg,100004', 'pig,100005']

4. 密码生成器

密码必须包含大小写字母、特殊字符、数字 p密码位数:8-20位不等

要求同时产生100个密码到列表

打印输出所有密码

import random
def password_generation(password_length):
    result = []
    for i in range(password_length):
        if i % 4 == 2:
            result.append(random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
        if i % 4 == 0:
            result.append(random.choice('1234567890'))
        if i % 4 == 1:
            result.append(random.choice('abcdefghijklmnopqrstuvwxyz'))
        if i % 4 == 3:
            result.append(random.choice('!$%()+,-.:;>?@[]`{}'))
    random.shuffle(result)
    result_str="".join(result)
    return result_str


def pwd_generation(num):
    pwd_list=[]
    for n in range(num):
        pwd_length=random.randint(8,21)
        pwd=password_generation(pwd_length)
        pwd_list.append(pwd)
    pwd_set=set(pwd_list)
    pwd_list1=list(pwd_set)
    return pwd_list1
pwd_list_make1=pwd_generation(100)
for pwd in pwd_list_make1:
    print(pwd)

@j0S53La)
8Q-Y9Fi3ru%7f(.K
?+3pPp[4TQqC7$1r
O7:u81hYW9mD$>r}0nI
:mS3]4w+2bnLc6K0L.
YTbt26{xJ6,[Y2a[X@o4
4A[!f8Yh
L>Hj>6q7Ee1
3O8hCn`0@Eg
9Tb[6?Kf
,8]gz6NBu7Pq0%
7TgqK:aI`90
%l1b82pVJL{
8)AwI6]p
Rcyf@[L29@2]F4nV
9flOX6`2n.Y
v0rN25v?:I
a3d1D[X}o1
Xw1-m124)U.f:3JFywT
qMKt?{58W.1dbK7
f0Ts3Ex4k%T09N!$5Q;q>
1kc3SuD{?0
,+1DpL020MS8wdn?)
{803H>eT8r]kff4GQK!
>Zt3z8(W-[3sPlD6
Kb77`b7D)
n7Z@qN86v(X
CKx4k,93jj2J!>+K
wf8JaG,5%T$5Ue6}
`0HL3J-[86ngu
B(ktl>-n84S!2U3H
rpEi}![6h8M2y8VP5M[:5
V7,6d?J0z(Bg(oB9+12Ey
iALd5L1z9?.
P`$@;aoctTXe6743{MH9
w8R73]}2HypQ0Re>q)
%3IaE7s?e3M@qM0
Rs4w;M)1i80j?2CPk.
:lX1.4Wj
6DGEu`f.0r5d3]
52vt(P.F
R8;8Or%h2
EfW+g4Cg3[9
o8{Gt7Lv).5ZIr9%)Z1m
KpS:p7;]87$Mp33auHE(
n3P,M22m{
daP6Fn35}`
M,o49r6+B
bAz%%Oi0.C90
{nV5,x39YhG
157%fwL$;U96Ty]Tkh
kHjG+h`>{H525p7s1L
00zY)2Ap)
n0>{9AC2uj
O3v-2gP%8
J5,B3o+b
+82JciXu6?
I}f5;p6Q
hWw1m6`[9mNS?P`7
Ip+W,E:c3706s
`J;8s1+lDAB25Gv;0@lz
kyH29N9@(}gmHq%%U4E7
Asu)H]l?4H3O466cn+
U?Q47).L6gls
}a9N,nKA$8-ow4C4
99B41>ky@ERH(?u8m
k++2la?rVe492C4I;O
VBtD0Bv.43K`56ek0!x`>
H9@Yo@sPgT4.6d4]16;iP
a;Fj!G38
1nr>Rz6E,06gUc!0)O6L.
R7v!9M2}i
``rf2Ut6xX1})63YYc)S
nRgEG`854%ac0U@;xZ0
]b87$P8vZx
(p4!4VxD
4T2%Mi,z1f
q9R0!aSe%U0]
i6?LJ:w28q
Jqx2{X%):1k9N96lK
24Oq@j{q5C17Md-;C
0.wV)K91n
o6ptJg,l%2R]757L!M
46ecCU+>5y
BrwN;!992d
l3f0Tst$J65P:Z)
3Fho4Suh})@5$O90U
3nLD5Zysc31(@(C
b5J[?m053Ze`lY2X!
-5igQ7hR8X;]7Mo9!k
Jd3Rl5j@9!
q9{iu]OE58l6V,
1[LzihU0@R,M17be]2
GQa0.8b$1Kq
%3Xlt0y[%27AdB
%VY40a6?v
,4CUh!4Z;ypz7B5N6>7p>
W?w1(P{3z(zG89Pc
n4@2q]dc+3M3GC0uQ,
2%u:7L5yJ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值