python 筆記1

  1. 用戶輸入
  2. 模塊
  3. 字符串拼接
  4. 數據類型
  5. 字符串
  6. 循環(while)

 

1、 用戶輸入

    不少狀況下會有用戶輸入用戶名密碼的場景,下面將用命令模擬一個;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)

 

2、 模塊

    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

    #在引用模塊的時候默認第一找的是當前目錄下面的模塊調試

3、 字符串拼接

    在拼接字符串時,有兩種寫法,一種是使用‘+’拼接,另外一種是%s 佔位符拼接,代碼實現以下:code

#!/usr/bin/python
#-*-coding:utf-8-*-

#+號拼接
name = 'yark'

print 'you name is ' + name

#佔位符
print 'you name is %s'%name

 這兩種方式的區別在於,使用+號至關於在內存中開闢了兩段地址空間,而使用佔位符則只開闢一段空間,因此在使用時儘可能使用 佔位符來拼接

4、數據類型

1. 數字

  • int (整型)
  • long(長整型)
  • float(浮點型)

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]
  • 列表copy(深淺copy)
>>> 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']
>>>
  • 列表練習題(找出一個嵌套列表中全部9,改爲99,而且刪除列表中全部22)
#!/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)

5、字符串

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
相關文章
相關標籤/搜索