不少狀況下會有用戶輸入用戶名密碼的場景,下面將用命令模擬一個;java
#!/usr/bin/env python #_*_coding:utf-8_*_ #only on python 2.x #name = raw_input("What is your name?") #python 3.x name = input("What is your name?") print("Hello " + name )
輸入用戶名密碼,而且不顯示密碼,不顯示密碼將使用getpass模塊完成,注:使用pycharm調試時沒法顯示預期效果;python
#!/usr/bin/python #_*_coding:utf-8_*_ import getpass #python 2.x name = raw_input('what is your name?') password = getpass.getpass('password: ') print(name,password)
python 的強大之處在於有很是豐富的標準庫和第三方模塊,下面舉兩個比較小的例子c++
獲取腳本傳遞的參數(sys);git
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print(sys.argv) #輸出 $ python test.py hello world ['test.py', 'hello', 'world'] #把執行腳本時傳遞的參數獲取到了
執行系統命令(os);bash
#!/usr/bin/env python # -*- coding: utf-8 -*- import os os.system("df -h") #調用系統命令 #保存命令結果,適用於輸出比較少的系統命令,這個讀取是等命令執行完以後才返回執行結果的,時間比較長 cmd = os.popen('df -h').read() print cmd
模塊導入;app
#通常將本身寫的模塊放到python2.7/dist-packages下面python2.7
例如:/usr/lib/python2.7/dist-packagesspa
#在引用模塊的時候默認第一找的是當前目錄下面的模塊調試
在拼接字符串時,有兩種寫法,一種是使用‘+’拼接,另外一種是%s 佔位符拼接,代碼實現以下:code
#!/usr/bin/python #-*-coding:utf-8-*- #+號拼接 name = 'yark' print 'you name is ' + name #佔位符 print 'you name is %s'%name
這兩種方式的區別在於,使用+號至關於在內存中開闢了兩段地址空間,而使用佔位符則只開闢一段空間,因此在使用時儘可能使用 佔位符來拼接
1. 數字
2. bool (布爾值)
3. 字符串
4. 列表
建立列表 name_list = ['aa','bb','cc','dd']
>>> name_list = ['aa','bb','cc','dd'] >>> print name_list[0],name_list[1],name_list[2] aa bb cc #查找某個值在列表中的下標位置 >>> name_list.index('aa') 0
>>> name_list = ['aa','bb','cc','dd'] #打印前兩個數 >>> print name_list[0:2] ['aa', 'bb'] #打印最後一個數 >>> print name_list[-1] dd #步長爲2,每隔一個打印一個 >>> print name_list[::2] ['aa', 'cc'] >>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] #取1-4的值,1,2,3 >>> name_list[1:4] ['bb', 'cc', 'dd']
>>> print name_list ['aa', 'bb', 'cc', 'dd'] #追加使用 list.append() >>> name_list.append('ee') >>> print name_list ['aa', 'bb', 'cc', 'dd', 'ee']
>>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] #在下標爲2的位置插入11 >>> name_list.inster(2,'11') >>> name_list ['aa', 'bb', '11', 'cc', 'dd', 'ee']
>>> name_list ['aa', 'bb', '11', 'cc', 'dd', 'ee'] #刪除內容爲11,使用list.remove() >>> name_list.remove('11') >>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] >>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] #刪除2-4中間的元素 >>> del name_list[2:4] >>> name_list ['aa', 'bb', 'ee'] >>> name_list ['aa', 'bb', 'cc', 'dd'] #pop 默認刪除列表最後一個元素 >>> name_list.pop() 'dd' >>> name_list ['aa', 'bb', 'cc'] #使用pop刪除下標爲0的元素 >>> name_list.pop(0) 'aa' >>> name_list ['bb', 'cc']
>>> len(name_list) 3 >>> name_list ['aa', 'bb', 'ee']
#判斷3是否包含在name中,而且出現的次數是多少 >>> name ['aa', 'bb', 'cc', 'dd', 'ee', 11, 22, 3] >>> if 3 in name: ... cou = name.count(3) ... print '3在name中,而且出現%s次'%cou ... 3在name中,而且出現1次
name = ['aa','bb','a2','cc','dd','ee',11,22,33,66,99,'a2',100] name2 = ['zz','ll',11] print name name.extend(name2) print name #輸出 ['aa', 'bb', 'a3', 'cc', 'dd', 'ee', 11, 22, 33, 66, 99, 'a3', 100] ['aa', 'bb', 'a3', 'cc', 'dd', 'ee', 11, 22, 33, 66, 99, 'a3', 100, 'zz', 'll', 11]
>>> name = ['a','b','c','d','e','f',[1,2,3],'gg'] >>> name2 = name.copy() '''淺拷貝--只拷貝列表的第一層,第二層的內存地址相同''' #將name列表中下標爲1的元素改成'bb' >>> name[1]='bb' >>> print(name,name2) ['a', 'bb', 'c', 'd', 'e', 'f', [1, 2, 3], 'gg'] ['a', 'b', 'c', 'd', 'e', 'f',[1, 2, 3], 'gg'] #name2 中無修改 #將列表中的列表值修改後,copy的name2值也修改了 >>> name[6][0]=11 >>> print(name,name2) ['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] ['a', 'b', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] '''深拷貝--兩個列表徹底獨立,內存中地址都不同''' >>> import copy >>> name3 = copy.deepcopy(name) >>> print(name3) ['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] >>> name[6][0] = 22 >>> print(name) ['a', 'bb', 'c', 'd', 'e', 'f', [22, 2, 3], 'gg'] >>> print(name3) ['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] >>>
#!/usr/bin/python3 name = ['aaa', 'java', 'c', 'c++', [9, 5, 1, 298, 321, 22, 44,9], 9,235, 267, 235,9,[9,22,9]] for now in name: if type(now) == list: for i in range(now.count(9)): indexa = now.index(9) now[indexa] = 9999 for i in range(now.count(22)):now.remove(22) for i in range(name.count(9)): ele_index = name.index(9) name[ele_index] = 9999 for i in range(name.count(22)):name.remove(22) print(name)
5. 元組(不可改變的列表,只讀列表)
#建立元組 a = (1,2,3,4,5)
6. 字典
字典格式以下:
dic = { 123456:{ 'name': "adb", 'age': 18 } }
增
>>> dic[123456]['qq'] = 130194532 >>> print(dic) {123456: {'qq': 130194532, 'age': 18, 'name': 'adb'}}
刪
>>> del dic[123456]['qq'] >>> print(dic) {123456: {'age': 18, 'name': 'adb'}}
將全部value取出來,全部的key取出來
#取出全部value >>> print(dic.values()) dict_values([{'age': 18, 'name': 'adb'}]) #取出全部key >>> print(dic.keys()) dict_keys([123456])
查詢一個key值是否在字典內
#python 3.X >>> print(dic) {123456: {'age': 18, 'name': 'adb'}} >>> 123456 in dic True #python 2.x >>>dic.has_key(123456)
1. 字符串去除空格或換行
f = 'abc \n' f.strip('\n')
2. 分割
f = 'abc,jae,jjj' print(f.split(',')) 輸出 ['abc', 'jae', 'jjj']
3. 指定分隔符合並起來
f = 'abc,jae,jjj' f2 = f.split(',') print('|'.join(f2)) #輸出 abc|jae|jjj
4. 字符串查找
j = 'yark' print(j.find('a')) print(j.find('aa')) #返回值爲字符串的下標,若是沒有則爲-1 #輸出 -1 1
5. 判斷字符串是否爲數字
age = input('your age: ') if age.isdigit(): age = int(age) else: print('None') #輸出 your age: df None
六、循環(while)
循環100次,但50-60之間的數據不打印
#!/usr/bin/python3 count = 0 while True: count += 1 if count > 50 and count < 60: continue print(count) if count == 100: print('exit') break