file: day03_創(chuàng)建列表.py
date: 2018-08-29 9:06 AM
author: westos-dd
desc:
數(shù)組:存儲同一種數(shù)據(jù)類型的集合 scores=[12,13,14]
列表:(打了激素的數(shù)組):可以存儲任意數(shù)據(jù)類型的集合
"""
"""
In [1]: name1 = 'tom'
In [2]: name2 = 'lily'
In [3]: name3 = 'bob'
In [4]: name4 ='coco'
In [5]: name1
Out[5]: 'tom'
In [6]: name2
Out[6]: 'lily'
In [7]: name3
Out[7]: 'bob'
In [8]: name = ['tom','lily','bob','cooc']
In [9]: name
Out[9]: ['tom', 'lily', 'bob', 'cooc']
In [10]: type(name)
Out[10]: list
一個變量存儲多個信息
"""
# 列表里:可以存儲不同的數(shù)據(jù)類型
li = [1,1.2,True,'hello']
print li
print type(li)
# 列表里面也可以嵌套列表(列表:也是一種數(shù)據(jù)類型)
li = [1,1.2,True,'hello',[1,2,3,4,5]]
print li
print type(li)
file: day03_列表的特性.py
date: 2018-08-29 9:12 AM
author: westos-dd
desc:
"""
service = ['http', 'ssh', 'ftp']
# # 索引
# print service[0]
# print service[-1]
# # 切片
# print service[::-1] # 列表的翻轉(zhuǎn)
# print service[1:] # 除了第一個元素之外的其他元素
# print service[:-1] # 除了最后一個元素之外的其他元素
# # 重復(fù)
# print service * 3
# # 連接
# service1 = ['mysql','firewalld']
# print service + service1
# # 成員操作符
# print 'firewalld' in service
# print 'firewalld' in service1
# print 'firewalld' not in service
# for循環(huán)遍歷
# print '顯示服務(wù)'.center(50,'*')
# for se in service:
# print se
# 列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
# 索引
print service2[0][1]
print service2[-1][1]
# 切片
print service2[:][1]
print service2[:-1][0]
print service2[0][:-1]
file: day03_列表的增加.py
date: 2018-08-29 9:48 AM
author: westos-dd
desc:
"""
service = ['http', 'ssh', 'ftp']
# 1.
print service + ['firewalld']
# 2.append:追加 追加一個元素到列表中
service.append('firewalld')
print service
# 3.extend:拉伸 追加多個元素到列表中
service.extend(['mysql', 'firewalld'])
print service
# 4. insert:在指定索引位置插入元素
service.insert(1,'samab')
print service
file: day03_列表的刪除.py
date: 2018-08-29 9:55 AM
author: westos-dd
desc:
"""
service = ['http', 'ssh', 'ftp']
# #1.如果pop()不傳遞值的時候,默認(rèn)彈出最后一個元素
# print service.pop()
# # pop()也可以傳遞索引值
# print service.pop(0)
# 2.remove:刪除指定的元素
# service.remove('ssh')
# print service
# 3.del 關(guān)鍵字 從內(nèi)存中刪除列表
# print service
# del service
# print
# service
file: day03_列表的查看.py
date: 2018-08-29 10:15 AM
author: westos-dd
desc:
"""
service = ['http', 'ssh', 'ftp','ftp']
# 查看列表中元素出現(xiàn)的次數(shù)
print service.count('ssh')
# 查看指定元素的索引值
print service.index('ssh')
file: day03_列表的修改.py
date: 2018-08-29 10:02 AM
author: westos-dd
desc:
"""
service = ['http', 'ssh', 'ftp']
# 通過索引,重新賦值
service[0] = 'mysql'
print service
# 通過切片
print service[:2]
service[:2] = ['samba','ladp']
print service
file: day03_列表的排序.py
date: 2018-08-29 10:18 AM
author: westos-dd
desc:
"""
# service = ['http', 'ssh', 'ftp','ftp']
#
# # 按照Ascii碼進行排序的
# service.sort()
# print service
#
# service.sort(reverse=True)
# print service
# phones = ['bob', 'harry', 'Lily', 'Alice']
# # phones.sort()
# # 對字符串排序不區(qū)分大小寫
# #phones.sort(key=str.lower)
# phones.sort(key=str.upper)
# print phones
import random
li = list(range(10))
print li
# 將原有的列表順序打亂
random.shuffle(li)
print li
列表練習(xí):
1…..假定有下面這樣的列表:
names = ['fentiao', 'fendai', 'fensi', 'apple']
輸出結(jié)果為:'I have fentiao, fendai, fensi and apple.'
"""
names = ['fentiao', 'fendai', 'fensi', 'apple']
print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]
file: day03_列表練習(xí)題_后臺管理前臺會員信息.py
date: 2018-08-29 10:16 AM
author: westos-dd
desc:
1.后臺管理員只有一個用戶:admin 密碼:admin
2.當(dāng)管理員登陸成功后,才可以管理用戶信息
3.管理用戶信息包含
添加用戶信息
刪除用戶信息
查看用戶信息
退出
"""
print '管理員登陸'.center(50, '*')
inuser = raw_input('UserName:')
inpasswd = raw_input('Password:')
# 現(xiàn)存用戶名
users = ['root', 'westos']
# 現(xiàn)存用戶密碼
passwds = ['123', '456']
if inuser == 'admin' and inpasswd == 'admin':
print '管理員登陸成功'
print '用戶信息管理'.center(50, '*')
while True:
print """
1 -添加用戶信息
2 -刪除用戶信息
3 -查看用戶信息
4 -退出
"""
choice = raw_input('請選擇你的操作:')
if choice == '1':
print '添加用戶信息'.center(50, '*')
addUser = raw_input('添加用戶:')
if addUser in users:
print '用戶%s已經(jīng)存在' % addUser
else:
addPasswd = raw_input('密碼:')
# 把用戶名和密碼添加到列表中
users.append(addUser)
passwds.append(addPasswd)
print '添加用戶%s成功' %addUser
elif choice == '2':
print '刪除用戶信息'.center(50,'*')
delUser = raw_input('刪除的用戶:')
delIndex = users.index(delUser)
users.remove(delUser)
passwds.pop(delIndex)
print '刪除用戶%s成功' %delUser
elif choice == '3':
print '查看用戶信息'.center(50,'*')
print 't用戶名t密碼'
userCount = len(users) #2
for i in range(userCount): # 0 ,1
print 't%st%s' %(users[i],passwds[i])
elif choice == '4':
exit()
else:
print '請輸入正確的選擇'
else:
print '管理員登陸失?。?#39;
file: day03_列表練習(xí)題_用戶管理系統(tǒng)1.0.py
date: 2018-08-29 10:16 AM
author: westos-dd
desc:
1.系統(tǒng)里面有用戶 用戶有密碼
users = ['root','westos']
passwds = ['123','456']
2.用戶登陸(判斷用戶登陸是否成功)
1).判斷用戶是否存在
2).如果存在:
判斷用戶密碼是否正確:先找出用戶對應(yīng)的索引,
根據(jù)passwds[索引值]
如果正確:登陸成功,退出循環(huán)
如果密碼不正確:重新登陸 (機會只有三次)
2).不存在
重新登陸(機會只有三次)
"""
users = ['root', 'westos']
passwds = ['123', '456']
trycont = 0
# 嘗試登陸的次數(shù)
while trycont < 3:
inuser = raw_input('用戶名:')
inpasswd = raw_input('密碼:')
# 嘗試次數(shù)+1
trycont += 1
if inuser in users:
# 判斷用戶密碼是否正確
index = users.index(inuser) # 先找用戶對應(yīng)的索引值
passwd = passwds[index]
if inpasswd == passwd:
print '%s 登陸成功' % inuser
break
else:
print '%s 登陸失敗' % inuser
else:
print '用戶%s 不存在' % inuser
else:
print '三次機會已經(jīng)用完'
file: day03_華為筆試編程題目.py
date: 2018-08-29 3:31 PM
author: westos-dd
desc:
華為機測題:
明明想在學(xué)校中請一些同學(xué)一起做一項問卷調(diào)查,為了實驗的客觀性
他先用計算機生成了N個1~1000之間的隨機整數(shù)(N<=1000),N是用戶輸入的,對于
其中重復(fù)的數(shù)字,只保留一個,把其余相同的數(shù)字去掉,不同的數(shù)對應(yīng)著不同的學(xué)生的學(xué)號,然后再把這些
數(shù)從小到大排序,按照排好的順序去找同學(xué)做調(diào)查,請你協(xié)助明明完成“去重”與排序工作
"""
import random
# 先 生成n個隨機數(shù)
# 優(yōu)先選擇集合
s = set([])
for i in range(int(raw_input('N:'))):
# num = random.randint(1,1000)
# s.add(num)
s.add(random.randint(1,1000))
print s
print sorted(s)
file: day_元組的創(chuàng)建.py
date: 2018-08-29 2:19 PM
author: westos-dd
desc:
元組(tuple):帶了緊箍咒的列表
元組本身不可變數(shù)據(jù)類型,沒有增刪改差
元組內(nèi)可以存儲任意數(shù)據(jù)類型
"""
t = (1,2,3,4.0,'star')
print t,type(t)
# 元組里面包含可變數(shù)據(jù)類型,可以間接修改元組的內(nèi)容
t1 = ([1,2,3],4)
t1[0].append(4)
print t1
# 元組如果只有一個元素的時候,后面一定要加逗號,否則數(shù)據(jù)類型不確定
t2 = ('hello',)
t3 = (1,)
print type(t2),type(t3)
file: day03_元組的特性.py
date: 2018-08-29 2:26 PM
author: westos-dd
desc:
"""
allowUsers = ('root','westos','fentiao')
allowPasswd = ('123','456','789')
# 索引 # 切片
print allowUsers[0]
print allowUsers[-1]
print allowUsers[1:]
print allowUsers[2:]
print allowUsers[:-1]
print allowUsers[::-1]
# 重復(fù)
print allowUsers * 3
# 連接
print allowUsers + ('fensi','fendai')
# 成員操作符
print 'westos' in allowUsers
print 'westos' not in allowUsers
file: day03_元組的應(yīng)用場景.py
date: 2018-08-29 2:38 PM
author: westos-dd
desc:
"""
# 1.變量交換數(shù)值
# a = 1
# b = 2
# b,a = a,b
# # 先把(a,b)封裝成了一個元組(1,2)
# # b,a = a,b
# # b =(1,2)[0] a=(1,2)[1]
# print a,b
# 2.打印變量值
# name = 'westos'
# age = 10
# t = (name,age)
# print 'name: %s,age: %d' %(name,age)
# print 'name: %s,age: %d' %t
# 3.元組的賦值:有多少個元素,就用多少個變量接收
# t = ('westos',10,100)
# name,age,score = t
# print name,age,score
scores = (100,89,45,78,65)
# scoresLi = list(scores)
# scoresLi.sort()
# print scoresLi
scores = sorted(scores)
print scores
file: day03_集合的定義.py
date: 2018-08-29 2:59 PM
author: westos-dd
desc:
"""
# 集合里面的元素是不可重復(fù)的
s = {1,2,3,1,2,3,4,5}
print s,type(s)
s1 = {1}
print s1,type(s1)
# 如何定義一個空集合
# s2 = {}
# print type(s2)
s3 = set([])
print s3,type(s3)
# 集合的應(yīng)用
li = [1,2,3,1,2,3]
print list(set(li))
file: day03_集合的特性.py
date: 2018-08-29 3:10 PM
author: westos-dd
desc:
集合只支持 成員操作符 for循環(huán)
"""
s = {1,2,3}
#print s[0]
# print s * 3
# print s + {5,4,6}
print 1 in s
for i in s:
print i,
for i,v in enumerate(s):
print 'index: %s,value:%s' %(i,v)
file: day03_集合常用的方法.py
date: 2018-08-29 3:31 PM
author: westos-dd
desc:
"""
s = {6, 7, 8, 1, 2, 3}
# 增加
# s.add(10)
# s.add(9)
# print s
# 增加多個元素
# s.update({4,5})
# print s
# 刪除
# print s
# s.pop()
# print s
# 刪除指定的元素
# s.remove(2)
# print s
# 交集 并集 差集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
# 并集
print '并集:', s1.union(s2)
print '并集:', s1 | s2
# 交集
print '交集:', s1.intersection(s2)
print '交集:', s1 & s2
# 差集
# 可以理解為s1中有哪些s2中沒有的元素
print '差集:', s1.difference(s2) # s1-(s1&s2)
print '差集:', s1 – s2
# 可以理解為s2中有哪些s1中沒有的元素
print '差集:', s2.difference(s1) # s2-(s1&s2)
print '差集:', s2 – s1
# 對等差分:并集-交集
print '對等差分:', s1.symmetric_difference((s2))
print '對等差分:', s1 ^ s2
s3 = {1, 2}
s4 = {1, 2, 3}
# s3是否為s4的子集
print s3.issubset(s4)
# s3是否為s4的超集
# 什么是超集:如果s3中的每一個元素都在集合s4中,且
# s4中可能包含s3中沒有的元素,則s3就是s4的一個超集
print s3.issuperset(s4)
# 兩個集合是不是不相交
print s3.isdisjoint(s4)
file: day03_字典的定義.py
date: 2018-08-29 4:20 PM
author: westos-dd
desc:
name :小明
age : 18
height:180
"""
"""
字典是一個無序的數(shù)據(jù)集合,使用print輸出字典的時候
通常輸出的順序和定義的順序是不一致的
# """
# message = {
# 'name':'tom',
# 'age':18,
# 'height':1.80,
# 'weight':75.5
# }
# print message
# s = {}
# print type(s)
# s = {
# 'fentiao':[100,90,80],
# 'westos':[199,199,199]
# }
# print s
d = dict()
print d,type(d)
d = dict(a=1,b=2)
print d,type(d)
file: day03_字典的特性.py
date: 2018-08-29 4:28 PM
author: westos-dd
desc:
"""
d = dict(a=1,b=2)
print d
# 成員操作符(默認(rèn)判斷key值是否存在)
print 'a' in d
print 1 in d
# for循環(huán)(默認(rèn)循環(huán)遍歷字典的key值)
for i in d:
print i
file: day03_字典的增加.py
date: 2018-08-29 4:31 PM
author: westos-dd
desc:
"""
d = dict(a=1, b=2)
# print d
# # 添加或者更改key-value對
# d['g'] = 10
# print d
# d['a'] = 10
# print d
"""
update:
如果key值存在,更新value值
如果key值不存在,添加key-value值
"""
# d.update({'a':4,'f':1})
# print d
"""
setdefault
如果key值已經(jīng)存在,不做修改
如果key值不存在,添加key-value值
"""
d.setdefault('a',10)
print d
file: day03_字典的刪除.py
date: 2018-08-29 4:36 PM
author: westos-dd
desc:
"""
d = dict(a=1, b=2,c=3)
# pop:彈出指定的key-value值
# d.pop('a')
# print d
# print d
# d.popitem()
# print d
del d['a']
print d
file: day03_字典的修改與查看.py
date: 2018-08-29 4:40 PM
author: westos-dd
desc:
"""
service = {
'http':80,
'mysql':3306
}
# 查看字典里面所有的key值
print service.keys()
# 查看字典里面所有的value值
print service.values()
# 查看字典里面所有的key-value值
print service.items()
# 遍歷
for k,v in service.items():
print k,'—->',v
for k in service:
print k,'—–>',service[k]
# print service['https']
# if 'https' in service:
# print service['https']
# else:
# print 'key not exist'
"""
get方法獲取指定key對應(yīng)的value值
如果key值存在,返回對應(yīng)的value值
如果key值不存在,默認(rèn)返回None,如果需要指定返回值,傳值即可
"""
print service.get('http','key not exist')
file: day03_字典練習(xí).py
date: 2018-08-29 4:41 PM
author: westos-dd
desc:
# 重復(fù)的單詞: 此處認(rèn)為單詞之間以空格為分隔符, 并且不包含,和.;
# 1. 用戶輸入一句英文句子;
# 2. 打印出每個單詞及其重復(fù)的次數(shù);
"hello java hello python"
# hello 2
# java 1
# python 1
"""
s = raw_input('s:')
# 1.把每個單詞分割處理
s_li = s.split()
print s_li
# 2.通過字典存儲單詞和該單詞出現(xiàn)的次數(shù)
words_dict = {}
"""
依次循環(huán)遍歷列表
如果列表元素不在字典的key中,將元素作為key 1作為valus值
如果列表元素在字典的key中,直接更新元素value值,在原有的基礎(chǔ)上加1
"""
for item in s_li:
if item not in words_dict:
words_dict[item] = 1
else:
words_dict[item] += 1
# 4.打印生成的字典
print words_dict
file: day03_字典練習(xí)02.py
date: 2018-08-29 4:42 PM
author: westos-dd
desc:
# 數(shù)字重復(fù)統(tǒng)計:
1). 隨機生成1000個整數(shù);
2). 數(shù)字的范圍[20, 100],
3). 升序輸出所有不同的數(shù)字及其每個數(shù)字重復(fù)的次數(shù);
"""
import random
# 1.隨機生成1000個整數(shù)
all_nums = []
for item in range(1000):
# 2.數(shù)字的范圍
all_nums.append(random.randint(20, 100))
# 3.升序輸出所有不同的數(shù)字及其每個數(shù)字重復(fù)的次數(shù)
sorted_num = sorted(all_nums)
nums_dict = {}
for num in sorted_num:
if num in nums_dict:
nums_dict[num] += 1
else:
nums_dict[num] = 1
print nums_dict
file: day03_python中常用的內(nèi)置方法.py
date: 2018-08-29 3:13 PM
author: westos-dd
desc:
"""
# 枚舉:返回索引值和對應(yīng)的value值
# s = 'hello'
# for i in s:
# print i
# for i,v in enumerate('hello'):
# print i
# print type(i)
# print v
# print type(v)
# print str(i) + '—->' + v
# s1 = 'abc'
# s2 = '123'
#
# for i in zip(s1,s2):
# #print i
# print '-'.join(i)