2. 基礎數據類型

[TOC]

數據類型

字符編碼:

我們通常還是用GBK指代中文windows內碼

usf-8是對編碼的壓縮和優化,在編寫python的時候需要聲明給python解釋器(說了python是解釋型語言),使用什么編碼來執行源代碼:

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

注釋:

單行注釋#
多行注釋 ``` ```

用戶輸入:

input()
需要限制輸入類型的時候,在input外面套接一個數據類型例如int(input())

輸入密碼時,如果想要不可見,需要利用getpass模塊中的getpass方法:

import getpass
pwd = getpass.getpass('enter your pwd:')

數據類型

在這里穿插解釋數據類型

  1. 數字
    int整型
    long長整型:在python2.2以后的版本里,python在長整數據后面不加L也不會有太大的問題
    float浮點型
    complex復數

  2. 布爾值
    真/假

  3. 字符串
    'hello world'

  • 字符串的格式化輸出
name = 'scott'
print('i am %s'%name)

#字符串是%s ; 整數%d ; 浮點數 %f
  • 字符串操作方法:

print(name.strip()) #脫

print(name.split()) #分割

print(name.len()) #長度

print(name.index('s')) #索引

name1 = 'scott,jack,jerry'

print(name[0:4])
#輸出結果為‘scot’
#說明python切片的一條規則

#**顧頭不顧尾**
#范例:
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']

不添加參數,默認刪除最后一個

>>> name.pop()
'super'
  • 在列表中定位元素位置
>>> name.count('jack')
1
list的深淺拷貝
## 計算結果以及為什么?
a = [1, 2, [3, "hello"], {"egon": "aigan"}]
# 形參a指向一塊儲存列表的內存位置
b = a[:]
# 形參b指向相同的位置

a[0] = 5
# 原本a的列表修改了某個值,a指向別的內存地址,該地址存儲著新的列表
# a修改了某個一層列表元素的位置,b不受影響
a[2][0] = 666
# a修改了某個二層列表元素的位置,b受到影響
print(a)
print(b)
# 知識點:深淺拷貝,b = a[:]讓b獲得了a的值,但是二者并不公用一塊內存地址
# 但是兩個列表中的二級列表,指向的是同一塊內存地址,
# 所以當兩個列表中,一級元素發生改變的時候,互不影響,但當二級元素發生改變的時候,二者同時發生變化。
# 有用于強制深拷貝的模塊

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'

  • 在某個字典中增加一個數字
    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已經有的鍵值,就更新覆蓋該鍵值

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容