天天看點

Python(三)資料類型、操作符、輸入輸出、判斷|循環語句

資料類型

一、Python支援的資料類型

1.變量

變量是記憶體中的一塊區域

變量的命名:由字母、數字、下劃線組成并且開頭不能時數字

python中位址變量與c語言剛好相反,一條資料包含多個标簽:

>>> a=1

>>> b=1

>>> id(a)

34909288

>>> id(b)

2.整型

注:type()可以檢視資料類型

>>> num1=123

>>> type(num1)

<type 'int'>

3.長整型

#強制定義為長整型:num3=999L

>>> num2=9999999999999999999

>>> type(num2)

<type 'long'>

>>> num3=999L

>>> type(num3)

4.浮點型

#1.2e10代表的數值為1.2的10次方;

#12e9代表的數值為12的9次方;

>>> f1=12.0

>>> type(f1)

<type 'float'>

>>> f2=1.2e10

>>> type(f2)

5.波爾類型

#隻包含True|False兩種,注意開頭字母大寫,不識别小寫

In [9]: a=True

In [10]: type(a)

Out[10]: bool

In [11]: b=False

In [12]: type(b)

Out[12]: bool

注:如果括号裡面有數值,傳回True,否則False。0也傳回Flase

>>> a=123

>>> bool(a)

True

>>> b=""

>>> bool(b)

False

>>> bool(-1)

>>> bool(1)

>>> bool(0)

6.複數類型

#python對複數提供内嵌支援,eg: 3.14j, 8.32e-36j

>>> c=3.14j

>>> type(c)

<type 'complex'>

二、python類型轉換的工廠函數

int('1'), long(1), float(1), bool(-1), bool(0), complex(1)

#将a從整型轉換為長整型:

>>> type(a)

<type 'int'>

>>> a=long(a)

<type 'long'>

>>> a

123L

三、BIF: built-in function内置函數(*隻介紹一部分)

cmp:比較大小

In [37]: cmp(1,2)

Out[37]: -1

In [38]: cmp(2,1)

Out[38]: 1

In [39]: cmp(1,1)

Out[39]: 0

type(變量名):檢視變量類型

In [42]: a=1

In [43]: type(a)

Out[43]: int

str:轉換為字元串

In [40]: str(1)

Out[40]: '1'

四、進制轉換

不同進制轉換: hex(16), oct(8)

ASCII碼轉換: ord('A'), chr(97)

hex轉換為16進制

oct轉換為8進值

In [47]: hex(1)

Out[47]: '0x1'

In [48]: oct(1)

Out[48]: '01'

ord(‘A’)将A轉換為對應的ASDII碼  

chr(97)反向查詢97這個ASDII碼對應的字元

操作符

一、算術運算符:+, -, *, /,**, %, //

>>> 2**3

8

>>> 5%2

1

注:在2.x版本和3.0版本python中“/”的結果是不同的:

In [25]: 5/2

Out[25]: 2

In [26]: 5//2      #兩種方式的結果都是5除以2等于2

Out[26]: 2

In [27]: from __future__ import division  #使用這條指令将目前2.x環境轉換為3.0版本python的精确計算方式

In [28]: 5/2

Out[28]: 2.5     #現在執行5除以2得到的是2.5而不是2

In [29]: 5//2      #5//2才會隻取整數位

Out[29]: 2

>>> a=1111

>>> b=111111L

>>> a+b

112222L

二、指派運算符: +=, -=, *=...... (注意: a+=2 實質上是a=a+2; python中不支援a++,但支援++a)

三、比較運算符: >, >=, <, <=, !=, ==(注意: 結果是bool類型,隻能是True或者False)

>>> 1>2

注:==除了會判斷是否相等,還會判斷是否同一類型,如'1' == 1就會傳回False錯誤(字元串和數值不相等)

三、邏輯運算符:邏輯與and, 邏輯或or, 邏輯非not

#如果為空,not+變量的傳回值就為True

>>> warn = ""

>>> not warn

>>> a="hello"

>>> not a

>>> not ""

輸入輸出

Input:(python2和python3中不同:2.0版本中使用raw_input和input來區分字元串和數值;3.0中使用input可以自動區分數值還是字元串)

    raw_input("提示資訊:")            # 傳回值是字元串

    input("提示資訊")                    # 傳回值是數值類型

In [68]: raw_input("輸入Name:")

輸入Name:vaon

Out[68]: 'vaon'

Output:

    print "顯示%d條資訊:%s" %(1, "占位符的内容")

    print """

        按照三引号之間的格式輸出;

    """   

In [69]: print "vaon Is %d years old" %(18)      #%d表示占用一個位置,類型為數值類型。如果是字元串類型用%s代替

vaon Is 18 years old

In [70]: print """

   ....:         主機資訊

   ....: 1.3一uyu6q7hh%&j

   ....: 2.--qeoids23230-

   ....: 3.jfhuyer-=-09==

   ....: """

        主機資訊

1.3一uyu6q7hh%&j

2.--qeoids23230-

3.jfhuyer-=-09==

判斷語句

注:python中不支援case語句,可以通過if...elif...elif...else實作

if ...

if ...  else ....

if ...  elif ... elif ... else ....

#python中不支援三目運算符:a>b?a:b

#但要實作三目運算符功能可以:a if a<b else b ,如果a<b就輸出a,a>b就輸出b

循環語句

一、for循環

for .... (注意: range(start, stop, step))

for .... if語句嵌套

for .... for語句嵌套

二、while循環

while實作無限循環:

    while True:

        ...

或者:

    while 1:

break和continue:

break:遇到break,跳出循環

continue:跳過此次循環,回到循環繼續執行

range:

range(start,stop,step):傳回一個别表,從start開始,stop-1結束,步長為step

列印出1-10:

In [10]: range(1,11)

Out[10]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

列印出1-10的奇數:

In [11]: range(1,11,2)

Out[11]: [1, 3, 5, 7, 9]

注:python中特有的while...else...語句:

      如果滿足while後面的語句,執行while循環的程式,如果不滿足,執行else裡面的程式

      其實if語句同樣有if...else...語句

題目1:

使用者輸入年齡,如果大于18,顯示是成年人,否則顯示不是成年人

解答:

#!/usr/bin/env python

#coding:utf-8

age=input("輸入年齡:")

if age > 18:

    print "Age Is %d,You Are Adult" %(age)

else:

    print "Age Is %d,Not Adult" %(age)

題目2:

Python(三)資料類型、操作符、輸入輸出、判斷|循環語句

#!/usr/bin/python

hostname=raw_input("輸入主機名:")

IP=raw_input("輸入IP:")

used_year=input("輸入已使用時間:")

CPU=raw_input("CPU資訊:")

Memory=raw_input("記憶體大小:")

if used_year > 10:

    print "該伺服器使用年限太久!"

    print """

    主機資訊

主機名:%s

ip:%s

使用年限:%d

CPU:%s

Memory:%s

"""%(hostname,IP,used_year,CPU,Memory)

題目3:

判斷是否閏年

"""

判斷是否閏年的方法:

    1.能被4整除但不能被100整除

    2.或者滿足能被400整除

year = input("Year:")

if (year%4 == 0 and year%100 != 0) or year%100 ==0:

    print "%d Is Leap" %(year)

題目4:

列印九九乘法表

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

        ...

# coding:utf-8

for n in range(1,10):

    for m in range(1,n+1):

        print "%d*%d=%d" %(m,n,m*n),       #如果列印時不想換行,在print最後面加逗号即可

    print                                                             #列印空行

題目5:

計算1+2+3+...+10000的和,并輸出腳本運作時間

import time                                 #調用time函數

start = time.time()                      #開始時間,計時

sum=0

for m in range(1,10001):

    sum+=m

print "求和結果:%d" %(sum)

stop = time.time()                      #結束時間,計時

print "腳本運作時間:%s" %(stop - start)    #結束時間減開始時間

題目6:

1.系統中使用者名密碼為admin和redhat

2.使用者登陸時,為防止暴力破解,僅有三次機會

3.如果登陸成功,顯示登陸成功