基石爲勤能補拙的迷宮之旅——第三天(Python基本數據類型,與用戶交互(輸出輸入),運算符)

一、 基本數據類型

爲何數據要區分類型?

    數據類型值的是變量值的類型,變量值之所區分類型,是因爲變量值是用來記錄事物狀態的,而事物的狀態有不同的種類,對應着,也必須使用不同類型的值去記錄它們。

(一)、數字類型

1、整型int

    作用:記錄年齡、等級、數量等
    定義:age = 18
    使用:數學運算 print(10 / 3) 與比較運算print(10 > 3)

2、浮點型float(有小數點)

    作用:記錄薪資、身高、體重等
    定義:salary = 3.1
    使用:數學運算print(3.1 + 2)與比較運算print(3.1 > 2)
   &ensp浮點型和整數型可混用

(二)、字符串str

    作用:記錄描述性質的狀態
    定義:在單引號/雙引號/三引號中包含一系列字符,例如name = 'mumoon'
    使用:msg=' my name is " mumoon " ' ,在字符串中要使用多個引號,引號類型要不同。

字符串的加法

    +(加號):拼接字符串
例如

x='hello'
y='world'
print(x + y)  # 結果是helloworld

    而print(x + 10) 報錯,因爲字符串只能與字符串相加。我們一般不推薦用+(加號)拼接字符串,浪費內存空間。

字符串的乘法

    *(乘號)循環輸出數遍
例如

print('mumoon'*3) #  結果是mumoonmumoonmumoon

(三)、 列表類型list

    作用:按照位置記錄多個同種屬性的值(索引對應值,索引從0開始,代表的就是位置),並且可以取出指定位置的某一個值
在這裏插入圖片描述
    定義:在[](中括號)內用逗號分隔開多個任意類型的值
例如:

L1=[100,3.2,'aaa',['a','b',['d','e']]]

    使用:

print(L1[0]) #  結果是100
print(L1[3][2][1]) #  結果是e

練習:取出第一個學生的第一個愛好

students_info=[['mumoon',18,['Reading',]],['Hysen',25,['Swimming','Cooking']]]
print(students_info[0][2][0])

(四)、字典類型dict

    作用:記錄多個不同屬性的值
    定義:在{}(大括號)內用逗號分開個多個元素,每一個元素都由key : value組成,value就是我們存放的值,可以是任意類型,一個key唯一對應一個value,key應該對value有描述性的功能,所以key通常是str類型。

dic={'name':'mumoon','age':18,'gender':'male'}

    使用:

print(dic['name']) #  結果是mumoon
print(dic['age']) #  結果18

練習:取出公司名

info={
    'name' : 'mumoon',
    'hobbies' : ['play' , 'sleep'],
    'company_info' : {
        'name' : 'Hi、Ason',
        'type' : 'education',
        'emp_num' : 40,
    }
}
print(info['company_info']['name']) #  結果是Hi、Ason

選擇數據類型的方法(列表Or字典)

    全班同學的信息,每個同學的信息都是相同屬性的值,但是信息裏面包含的例如姓名,年齡是不同屬性的值,所以用下面這種方式定義。

 info=[
     {'name':'Hysen','age':18,'sex':'male','height':1.81,'weight':70},
     第二個學生的信息,
     第三個學生的信息,
 ]

(五)、布爾類型bool:True、False

    作用:用於判斷
    定義:

x=True
y=False
print(10 > 11) #  結果是False
print(10 == 10) #  結果是True

    強調:所有的數值都自帶布爾值,其中0、None、空布爾值爲False,其餘都爲True
例如:

if []:
    print('ok') #  True打印ok
else:
    print('不 ok') #  False打印不ok,因爲[]是空,空的布爾值是False,所以最後結果是不ok

二、與用戶交互(輸出輸入)

1、接收用戶輸入

name = input('請輸入你的用戶名: ') #  name='mumoon'
print(name)

2、格式化輸出

    如何動態地顯示這麼一句話:My name is xxx ,my age is xxx,姓名和年齡會根據用戶輸入的不同而顯示不同。
    首先我們要提示用戶輸入姓名和年齡:

name = input('Your name: ')
age = input('Your age: ')

    方法一:我們可以用字符串拼接的方法

print('my name is '+name+' my age is '+age)

    我們之前說過不提倡這種方式,因爲會浪費內存,所以我們用下面這種方法。

print('my name is %s my age is %s' %(name,age))

    注意%d只能接收數字,%s可以接受所有類型

擴展

    在python3中只有一個input:input會將用戶輸入的任何內容都存成字符串類型

x = input('請輸入: ') #  輸入[1,2,3]
print(type(x)) #  <class 'str'>

    在python2中有兩種接收用戶輸入的機制:

  • raw_input:等同於python3的input
  • input:要求輸入者必須輸入的一個明確的數據類型,輸入什麼類型就存成什麼類型

    程序的目的是爲了便利用戶,這也是Python3捨棄Python2中的input的原因。

三、運算符

1、算數運算符

    假設變量x=3,y=7

運算符 描述 實例
+ 加 - 兩個對象相加 x + y 輸出結果 10
- 減 - 得到負數或是一個數減去另一個數 x - y 輸出結果 -4
* 乘 - 兩個數相乘或是返回一個被重複若干次的字符串 x * y 輸出結果21
/ 除 - y 除以 x y/ x 輸出結果 2.3
% 取餘 - 返回除法的餘數 y % x 輸出結果 1
** 冪 - 返回y的x次冪 y ** x 輸出結果343
// 取整 - 向下取接近除數的整數 y // x 輸出結果 2

2、比較運算符

    所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。
    假設變量x=3,y=7

運算符 描述 實例
== 等於 - 比較對象是否相等 (x == y) 返回 False
!= 不等於 - 比較兩個對象是否不相等 (x != y) 返回 True
> 大於 - 返回x是否大於y (x > y) 返回 False
< 小於 - 返回x是否小於y (x < y) 返回 True
>= 大於等於 - 返回x是否大於等於y (x > =y) 返回 False
<= 小於等於 - 返回x是否小於等於y (x < =y) 返回 True

字符串比較

例子

x='abcdef'
y='abcz'
print(x > y) #  結果是False,ASCII中表示z的數值比表示d的大

    字符串不能和數字比較,下面代碼會報錯

L1=[2,'abc',3]
L2=[2,3]
print(L2 >L1)

3、賦值運算符

假設變量x=3,y=7

運算符 描述 實例
= 簡單的賦值運算符 z= x + y 將 x + y 的運算結果賦值爲 z
+ = 加法賦值運算符 z += x 等效於 z = z + x
-= 減法賦值運算符 z -= x 等效於 z = z - x
* = 乘法賦值運算符 z *= x 等效於 z = z * x
/= 除法賦值運算符 z /= x 等效於 z = z / x
% = 取餘賦值運算符 z %= x 等效於 z = z % x
**= 冪賦值運算符 z **= x 等效於 z = z ** x
//= 取整賦值運算符 z //= x 等效於 z = z // x

3.1 交叉賦值

x=11
y=22
temp=x
x=y
y=temp

    上述代碼可以合併爲下面這樣

x=11
y=22
x,y=y,x

3.2 鏈式賦值

x=10
y=x
z=y

    上述代碼可以合併爲下面這樣

x=y=z=10

    x,y,z的內存地址一樣

3.3 解壓賦值

L=['a','b','c','d','e']
x=L[0] #  a
y=L[1] #  b
z=L[2] #  c
m=L[3] #  d
n=L[4] #  e
print(x,y,z,m,n) #結果是  a b c d e

    用下面這種方法同樣可以取得相同的結果

x,y,z,m,n=L
print(x,y,z,m,n)

    等號左邊的變量名必須與右面所包含的值一一對應,否則會報錯。

取頭尾的方法

x,y,*_,z=L
print(x,y,_,z) #結果是  a b ['c', 'd'] e

4、邏輯運算符

假設變量x=3,y=7

運算符 邏輯表達式 描述 實例
and x and y 布爾"與" - 如果 x 爲 False,x and y 返回 False,否則它返回 y 的計算值 (x and y) 返回 7
or x or y 布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值 (x or y) 返回 3
not not x 布爾"非" - 如果 x 爲 True,返回 False 。如果 x 爲 False,它返回 True。 not(x and y) 返回 False

    and:邏輯與,用來連接左右兩個條件,在左右兩個條件同時爲True的情況下,最終結果才爲True
    or:邏輯或,用來連接左右兩個條件,左右兩個條件但凡有一個爲True,最終結果就爲True
    not:取反

print(not 10 > 3) #  結果是False

5、身份運算符

    ==:判斷的是值是否相等
    is:判斷的是id是否相等

拾遺

平臺:操作系統+ 硬件= 應用軟件的運算平臺
註釋
#單行註釋
“”"
多行註釋
多行註釋
多行註釋
“”"
重要代碼進行註釋可增強可讀性,但不是註釋越多越好,可寫在代碼前,也可寫在代碼後。

發佈了27 篇原創文章 · 獲贊 16 · 訪問量 4274
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章