[Python]從零開始學python——Day01~02 基礎知識

國慶八天的休假說長不短,說短不長,趁着宅在家中的時間,打算從0開始學python。java

1.基礎

1.1 變量

python變量定義比較簡單,不須要定義數據類型,直接寫,就能夠賦值python

num=1

str="str"

與之相比,java中定義變量就得定義數據類型c++

int num = 1;

String str = "str";

還有不一樣的是,python中有複數的定義,java中就沒有git

查看變量的類型api

print(type("i")) #<class 'str'>

1.2 標識符關鍵字

數字,字母,下劃線組成,區分大小寫,數字不能開頭。數組

關鍵字能夠用keyword查看。app

import keyword

keywordList = keyword.kwlist

print(keywordList)

1.3 輸入與輸出

python2 裏面輸入是raw_input(),而python3裏面是input()。dom

輸出是 print()。函數

python的輸出和C++有點相似spa

str =input("請輸入內容")
print("輸入的內容%s長度是%d"%(str,len(str)))

1.4 運算符

+,-,*,/,%。

須要注意的是 / 返回的類型是根據參數而定的,若是除數被除數都是整型返回的就是整型,若是有浮點型,那返回的就是浮點型。

#round(num,取值位數)

print(round(2.5/2,1)) #1.2

與java不一樣的地方有**表明冪運算,//表明結果取整

#冪運算

print(2**10)#1K

print(2**20)#1M

print(2**30)#1G

2.判斷語句和循環語句

2.1 if判斷

與java的花括號不一樣,python的if格式是用縮進來判斷,if判斷成功後,執行縮進中的內容

python中沒有else if的寫法,elif替代

inputNum =int(input("please input any number"))

if inputNum >=0 and inputNum <10:

    print("0 <= num < 10,num=%d"%inputNum)

elif inputNum >=10 and inputNum <20:

    print("10 <= num < 20,num=%d"%inputNum)

else:

    print("%d"%inputNum)

2.2 while循環

知足條件不停循環,和java沒什麼區別

2.3 for循環

for有點像java的foreach循環,但for不只支持列表,也支持字符串

'''
輸出:
a
b
c
d
e
'''
str = "abcde"
for i in str:
    print(i)

for...else表示for循環正常結束後(即不是break跳出),執行else代碼塊

for num in range(10,20):  # 迭代 10 到 20 之間的數字
    for i in range(2,num): # 根據因子迭代
        if num%i == 0:      # 肯定第一個因子
            j=num/i          # 計算第二個因子
            print('%d 等於 %d * %d' % (num,i,j))
            break            # 跳出當前循環
    else:                  # 循環的 else 部分
        print (num, '是一個質數')

2.4 continue與break

不支持break/continue a的語法,只能break/continue最近一層循環

2.5 應用

寫了個猜拳小遊戲練習了下基礎

import random

while True:
    player = input("請輸入 剪刀(0) 石頭(1) 布(2),結束遊戲請輸入end")

    if(player == "end"):
        break

    if(not player.isnumeric()):
        print("請輸入數字")
        continue
    else:
        player = int(player)

    if(player <0 or player > 2):
        print("請輸入0,1,2")
        continue

    system = random.randint(0,2)

    if player - system == 1 or player - system == -2:
        print("獲勝")
    elif player == system:
        print("平局")
    else:
        print("輸了")

3.函數,字符串,列表

3.1 簡單函數

函數定義

#分割線
def line():
    print("-"*12+"華麗的分割線"+"-"*12)

3.1.1 時間函數

import time  # 引入time模塊

currentTime = time.time() #返回從1970.1.1開始至今的秒數
nowTime = time.asctime(time.localtime(currentTime))
print("當前時間戳爲:", currentTime) 
print("本地時間爲:",nowTime)

3.1.2 日曆

import calendar

cal = calendar.month(2017, 10)
print("2017年10月份的日曆:")
print(cal)

3.1.3 隨機函數

import random

for i in range(0,10):
    print(random.randint(0,100))

3.2 字符串

python對字符串操做有一套現成的方法,操做起來異常簡單

3.2.1 取索引

str = "hello world"

print(str[2:-1]) #從下標2的地方取到倒數第一位。'llo worl'
print(str[2:]) #從下標2的地方取到最後一位。'llo world'

3.2.2 格式化

和c++的相似

經常使用的就%s,%d,%f

3.2.3 find & rfind

檢測 str 是否包含在 mystr中,若是是返回開始的索引值,不然返回-1

find:從左邊開始找

rfind:從右邊開始找

str = "hello world"

print(str.find('world', 0, len(str))) #6

3.2.4 index & rindex

跟find()方法同樣,只不過找不到,會報異常.

index:從左邊開始找

rindex:從右邊開始找

str = "hello world"

print(str.index('world', 0, len(str))) #6

3.2.4 count

返回出現的次數

str = "hello world"

print(str.count('world', 0, len(str))) #1

3.2.4 replace

替換內容,若是 count 指定,則替換不超過 count 次.

str = "hello world"

print(str.replace('world', 'python', str.count('world')))  #hello python

3.2.4 split

切割返回列表

str = "hello world"

print(str.split(' '))  #['hello', 'world']

3.2.5 capitalize

第一個字母大寫

str = "hello world"

print(str.capitalize()) #Hello world

3.2.6 startswith & endswith

判斷是否以什麼開頭,以什麼結尾

str = "hello world"

print(str.startswith("h")) #True
print(str.endswith("d")) #True

3.2.7 lower & upper

字符串所有轉爲小寫,所有轉爲大寫

3.2.8 ljust & rjust & center

ljust:返回一個原字符串左對齊,並使用空格填充至長度 width 的新字符串

rjust:返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串

center:返回一個原字符串居中,並使用空格填充至長度 width 的新字符串

str = "hello world"

print("|"+str.ljust(20)+"|") #|hello world         |

print("|"+str.rjust(20)+"|") #|         hello world|

print("|"+str.center(20)+"|") #|    hello world     |

3.2.9 lstrip & rstrip

lstrip:刪除左邊的空格

rstrip:刪除右邊的空格

str = "   hello world   "

print("|"+str.lstrip()+"|") #|hello world   |

print("|"+str.rstrip()+"|") #|   hello world|

3.2.10 partition & rpartition

分割成三部分,str前,str和str後

partition:從左邊開始

rpartition:從右邊開始

str = "hello world"

print(str.partition('l'))  #('he', 'l', 'lo world')

print(str.rpartition('l'))  #('hello wor', 'l', 'd')

3.2.11 splitlines

按照行分隔,返回一個包含各行做爲元素的列表

str = "hell\no wor\nld"

print(str.splitlines()) #['hell', 'o wor', 'ld']

3.2.12 isalnum

若是字符都是字母或數字則返回 True,不然返回 False

3.2.13 isalpha

若是字符只包含字母則返回 True,不然返回 False

3.2.14 isdigit

若是字符只包含數字則返回 True,不然返回 False

3.2.15 isspace

若是字符只包含空格,則返回 True,不然返回 False.

3.2.16 isupper

若是字符都是大寫,則返回 True,不然返回 False.

3.2.17 islower

若是字符都是小寫,則返回 True,不然返回 False.

3.2.18 join

每一個字符後面插入,構造出一個新的字符串

str = "hello world"

print("*".join(str)) #h*e*l*l*o* *w*o*r*l*d

3.3 列表

列表支持不一樣數據類型在同一個列表中,java一個數組只支持一種數據類型

3.3.1 索引

'''
輸出
xiaoWang
xiaoZhang
xiaoHua
'''
A = ['xiaoWang','xiaoZhang','xiaoHua']
print(A[0])
print(A[1])
print(A[2]

3.3.2 for循環

'''
輸出
xiaoWang
xiaoZhang
xiaoHua
'''
A = ['xiaoWang','xiaoZhang','xiaoHua']

for tempName in A:
    print(tempName)

3.3.3 增:append

經過append能夠向列表添加元素,添加到最後位置

A = ['xiaoWang','xiaoZhang','xiaoHua']
A.append("xiaoMing")

3.3.4 改:=

經過下標來賦值

A = ['xiaoWang','xiaoZhang','xiaoHua']

A[0] = "xiaoMing"

3.3.5 查: in / not in

A = ['xiaoWang','xiaoZhang','xiaoHua']

if 'xiaoWang' in A:
    print("find")

3.3.6 刪:del / remove / pop

del:根據下表刪除

remove:根據內容刪除

pop:刪除最後一個元素(最新添加的元素)

相關文章
相關標籤/搜索