[TOC]
數(shù)據(jù)類型
字符編碼:
我們通常還是用GBK指代中文windows內(nèi)碼
usf-8是對編碼的壓縮和優(yōu)化燃异,在編寫python的時候需要聲明給python解釋器(說了python是解釋型語言),使用什么編碼來執(zhí)行源代碼:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
注釋:
單行注釋#
多行注釋 ``` ```
用戶輸入:
input()
需要限制輸入類型的時候鲸匿,在input外面套接一個數(shù)據(jù)類型例如int(input())
輸入密碼時究驴,如果想要不可見镊绪,需要利用getpass
模塊中的getpass
方法:
import getpass
pwd = getpass.getpass('enter your pwd:')
數(shù)據(jù)類型
在這里穿插解釋數(shù)據(jù)類型
數(shù)字
int
整型
long
長整型:在python2.2以后的版本里,python在長整數(shù)據(jù)后面不加L也不會有太大的問題
float
浮點型
complex
復(fù)數(shù)布爾值
真/假字符串
'hello world'
- 字符串的格式化輸出
name = 'scott'
print('i am %s'%name)
#字符串是%s 洒忧; 整數(shù)%d 蝴韭; 浮點數(shù) %f
- 字符串操作方法:
print(name.strip()) #脫
print(name.split()) #分割
print(name.len()) #長度
print(name.index('s')) #索引
name1 = 'scott,jack,jerry'
print(name[0:4])
#輸出結(jié)果為‘scot’
#說明python切片的一條規(guī)則
#**顧頭不顧尾**
#范例:
print(name [-6:])
print(name [-6:1])
print(name [0::3]) #隔幾個字符取一次
列表和字典
list列表
- 定義列表
>>> name = ['scott','jack','jerry','peter']
- 添加元素(append)
>>> name.append('super')
>>> name
['scott', 'jack', 'jerry', 'peter', 'super']
- 定位添加元素(insert)
>>> name.insert(2,'alex')
>>> name
['scott', 'jack', 'alex', 'jerry', 'peter', 'super']
- 定位刪除元素
>>> name.pop(3)
'jerry'
>>> name
['scott', 'jack', 'alex', 'peter', 'super']
不添加參數(shù),默認刪除最后一個
>>> name.pop()
'super'
- 在列表中定位元素位置
>>> name.count('jack')
1
list的深淺拷貝
## 計算結(jié)果以及為什么熙侍?
a = [1, 2, [3, "hello"], {"egon": "aigan"}]
# 形參a指向一塊儲存列表的內(nèi)存位置
b = a[:]
# 形參b指向相同的位置
a[0] = 5
# 原本a的列表修改了某個值榄鉴,a指向別的內(nèi)存地址,該地址存儲著新的列表
# a修改了某個一層列表元素的位置蛉抓,b不受影響
a[2][0] = 666
# a修改了某個二層列表元素的位置牢硅,b受到影響
print(a)
print(b)
# 知識點:深淺拷貝,b = a[:]讓b獲得了a的值芝雪,但是二者并不公用一塊內(nèi)存地址
# 但是兩個列表中的二級列表减余,指向的是同一塊內(nèi)存地址,
# 所以當兩個列表中惩系,一級元素發(fā)生改變的時候位岔,互不影響如筛,但當二級元素發(fā)生改變的時候,二者同時發(fā)生變化抒抬。
# 有用于強制深拷貝的模塊
dict 字典
key Value 鍵值
key 必須唯一
- 字典為什么是無序的杨刨?
name= {
9527:{'name':'scott','age':23},
9528:{'name':'jack','age':24},
9529:{'name':'jerry','age':22},
9530:{'name':'peter','age':22}
}
取值
print(name[9527]['age'])
增
name[9526] = 'yage'
刪
print(name.pop(9526)) #---會返回他的值
print(name.popitem()) #---隨機刪除一個
改
修改某個字典元素
name[9528][0] = 'super jack'
在某個字典中增加一個數(shù)字
name[9529].append(28)
- 查
print(name.get(9527))
print(9527 in name)
print(name.keys())
print(name.values())
- loop
- 只打印key
for i in name: print(i)
for i in name.items(): print (i)
for k,v in names.items(): print(k,v)
- 更新
dict2 = {
9523:{'name':'sco','age':23}
9524:{'name':'jac','age':24}
9525:{'name':'jer','age':22}
9536:{'name':'pet','age':22}
}
.update()
如果dict.update(dict2)
如果dict2中有dict已經(jīng)有的鍵值,就更新覆蓋該鍵值