【02】Python:數據類型和運算符

寫在前面的話python

 

任何編程語言一開始都是從概念出發的,但各類編程語言之間的概念可能又會有差別,因此,老生常談,咱們仍是須要重新過一遍 Python 的概念,固然,若是你已是老司機了,徹底能夠一晃而過,不過老司機應該也不會再看這些基礎。編程

另外,編程一開始都是枯燥的,緣由有兩,一是沒有成就感,二是茫然本身怎麼把這些知識串聯起來。因此,但願有幸看到這裏的都可以靜下心好好看下去,柳暗花明,須要的是時間。你也能夠一蹴而就去看框架。可能比較聰明就能跟着作出一些東西出來。框架

可是,那樣的人終究是一隻紙老虎,一開始很嚇人,但慢慢的愈來愈笨批,由於自己基礎沒打好,如何建出高樓大廈,最多也就是海市蜃樓。編程語言

這裏順便介紹一下計算機的程序和指令:工具

計算機由運算器,控制器,存儲器,輸入設備,輸出設備組成,運算器和控制器組成中央處理器,主要執行運算和控制指令處理數據。編碼

 

 

代碼註釋spa

 

說明:所謂的註釋,就是這一段內容在程序運行的時候不起做用,可是在咱們查看代碼的時候能給我清清楚楚說明這段代碼的做用。3d

注意:註釋是代碼之本,對你也好,對別人也好,沒註釋的代碼就是垃圾,無論你寫的多漂亮。調試

在 Python 中,注意通常兩種,單行註釋和多行註釋。code

單行註釋:# 註釋內容,井號

多行註釋:""" 註釋內容 """,三個雙引號

咱們通常在註釋符號後面加個空格,這是 PEP8 的規範,也便於閱讀。例如:

# 這是一個單行註釋

"""
這是多行註釋
這是多行註釋
這是多行註釋
這是多行註釋
"""

在 Python 中有個特別的註釋:

# -*- coding: utf-8 -*-

指定編碼類型,寫在 py 文件開始,推薦這句話成爲你們之後寫代碼的規範。

 

 

輸出輸入

 

輸出:以前咱們使用了 hello world demo,而後打印輸出了內容,這裏經過實例詳細講講 print 的用法:

print('打印字符串:')
print('hello world')
print('打印逗號做爲分隔符的多個內容:')
print('My', 'name', 'is', 'Dylan', '!')
print('打印數字:')
print(100)
print('打印算術:')
print(100 + 100)
print('打印字符串拼接:')
print('100' + '100')
print('打印屢次:')
print('A' * 10)

打印結果如圖:

注意:若是兩種不一樣類型的數據相 + 拼接,如 100 + '100',會報錯:TypeError: can only concatenate str (not "int") to str

 

輸入:用戶本身輸入內容賦值給變量,而且可以被程序後面使用。

my_name = input("Plz input your name:")
print('My name is', my_name)

結果:

注意:input 輸入的值都是字符串,若是你須要的並非字符串,記得對值得類型就行轉換 

 

變量常量

 

變量:存儲數據的載體,計算機中變量實際是一塊內存空間,可以被讀取和修改。

在 python 中,變量命名有以下規則:

1. 數字,字母,下劃線組成,不能字母開頭。

2. 區分大小寫。

3. 不用跟系統關鍵字同名,如:print

這裏順便提一提 PEP8 規範,這是一個很是嚴格的規範,可是但願你們都能遵照:

1. 小寫字母組成,單詞之間下劃線鏈接。

2. 受保護的實例屬性單下劃線開頭,後面會說。

3. 私有的實例屬性使用雙下劃線開頭,後面會說。

4. 見名知義。

例如:

# 變量定義
my_name = "Dylan"
my_age = 25
is_boy = True
user_info = None

# 變量引用
print('My name is', my_name)
print('My age is', my_age)
print('You are boy:', is_boy)
print('Desc:', user_info)

結果: 

 

常量:這裏就一個特殊的,π,3.1415926

 

 

數據類型

 

咱們這裏只是簡單的介紹一下數據類型:

1. 整數:

包括正整數,負整數,0。python 是能夠處理任意大小的整數。

 

2. 浮點數:

也就是小數,可是包含科學計數法部分,如:1.2x10^10,有些地方也把 10 寫成 e,如:1.2e10,0.0012 寫成 1.2e-3。

值得注意的是,在 Python 中,整數永遠是精確的,可是小數多是結果四捨五入而來。

 

3. 字符串:

單引號或者雙引號括起來的任意文本 ,如:"abc"。

固然,在字符串中有些特殊的,好比 \(轉義符),幾種常見的轉義符:\n 換行,\t 製表符,\\ 符號自己

不轉義可使用 r。以下實例:

print('hello\nworld')
print('hello\tworld')
print('\\n\\')
print(r'hello\nworld')

結果:

 

4. 布爾類型:

至於兩個 TrueFalse。能夠用於判斷,後面會用到。

 

5. 空值:

只有一個,None,注意 Node 不是 0。

 

查看數據類型:type(變量)

a = 'hello'
print(type(a))

結果:

 

數據類型轉換方法:

方法 做用
int() 將一個數字或者自己是數字的字符串轉換成整型
float() 將字符串轉換成小數
str() 將指定對象轉換成字符串
chr() 將整數編碼成對應的字符串,也就是返回在數字對應ASCII 表中的值
ord() 將字符串(一個字符)轉換成對應編碼(整數),也就是返回字母返回在 ASCII 表中的數字

示例:

a = 3.1415926
print(int(a))

b = 3
print(float(b))

c = 123
print(type(str(c)))

d = 65
print(chr(d))

f = 'A'
print(ord(f))

結果:

 

 

格式化輸出

 

咱們只須要記住幾個經常使用就是了:%d 整數佔位符,%f 浮點數佔位符,%s 字符串佔位符,%x 十六進制整數

和轉義符 \ 同樣,% 的轉義符就是 %,因此輸出 % 就是 %%

示例以下:

# 單個佔位符
print('My name is %s' % 'Dylan')

# 多個佔位符
print('My name is %s,age is %d!' % ('Dylan', 25))

# 小數保留位數
print('%.2f' % 3.1415926)

# 右對齊指定位數,不夠前面補充字符:
print('%3d' % 2)
print('%03d' % 2)

# 左對齊
print('%-5d#hello' % 2)

# 百分比
print('%d%%' % 10)

結果:

固然還有另一種格式化方式,只是用的比較少:

print('My name is {}, age is {}'.format('Dylan', 25))
print('My name is {0}, age is {1}'.format('Dylan', 25))
print('My name is {}, age is {age}'.format('Dylan', age=25))

 

 

運算符

 

參考以下表:

運算符 描述
[數字] [:] 下標/切片
~ + - 按位與/正/負
** + - * / % // 冪/加/減/乘/除/取模/取整(算數運算符)
>> << 右移/左移
& 按位與
> < >= <= == != 大於/小於/大於等於/小於等於/等於/不等於
is/is not 身份運算符
in/not in 成員運算符
not/or/and 非/或/和(邏輯運算符)

至於優先級,感興趣的能夠本身下去研究:( ) > not > and > or

1. 算術運算符示例:

# 算術運算符
a = 3
b = 5

print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b)
print(a // b)
print(a ** b)

結果:

 

2. 比較運算符:

# 比較運算符
a = 3
b = 5

print(a > b)
print(a < b)
print(a >= b)
print(a <= b)
print(a == b)
print(a != b)

結果:

 

3. 邏輯運算符:

and:同真爲真

or:一真爲真

not:取反

print(3 > 4 or 4 < 3 and 1 == 1)
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)

結果:

該例子僅供參考,若是你把邏輯以節寫的這麼複雜了,只能說明是垃圾代碼。

數值在邏輯比較時候:

x or y,x 真,值 x,x 假,值 y

x and y,x 真,值 y,x 假,值 x

例如:

print(0 or 4 and 3 or 7 or 9 and 6)

結果爲:3

 

4. 成員關係運算符後面咱們會單獨在提! 

 

 

練習示例

 

【1】輸入圓半徑計算周長和麪積:

# 導入 pi
from math import pi

# 用戶輸入半徑
radius = float(input("請輸入圓的半徑:"))
# 計算周長和麪積
cycle = 2 * pi * radius
area = pi * radius * radius
# 輸出結果
print("半徑爲 %.2f 的圓的周長爲 %.2f,面積爲 %.2f" % (radius, cycle, area))

結果:

 

【2】判斷閏年和平年:

# 用戶輸入年份
year = int(input("請輸入年份:"))
# 判斷閏年(如今沒學 if,用上面的方法)
is_leap = ((year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0))
print("年份 %s 是不是閏年:%s" % (year, is_leap))

結果:

 

 

小結 

 

這一節主要是 Python 基礎中得基礎,其中數據類型,運算符算是重中之重。輸入可能在之後寫代碼得時候用得比較少,可是輸出絕對很多。

在羣裏以前老是有人在問代碼除了問題,不知道怎麼解決,工具就給他報個錯,而後人就傻了。其實對於初學者最爲直觀的調試方法就是將有些步驟的結果經過 print 打印出來,看結果是否符合咱們的預期。

天然問題不少就得以解決。還有部分不能解決的,就能夠結合 type 來檢查,看類型是否正確。若是最後還不能解決,那問題可能就是你自己就寫錯了。 

相關文章
相關標籤/搜索