py入門 _ 01

                 入門學習python

pep8中文下載(代碼官方格式)

運算符:+ - * /  (加減乘除)

            //  取整除     %  取餘數     **  乘方



pycharm的快捷鍵:

Ctrl + /     批量註釋

Ctrl + z 撤銷

 

選中一片代碼,按tab鍵,可以批量縮進,按shift + tab鍵可以取消縮進

 

一行過長的語句可以使用反斜槓或者括號分解成幾行,不妨試試:

1.  >>> 3 > 4 and \

2.    1 < 2

複製代碼

或者

1.  >>> ( 3 > 4 and 

2.    1 < 2 )

複製代碼


註釋:(1)、單行註釋 #

          (2)、多行註釋

”””

 

”””

 

變量類型(數據類型):

注意:Python定義變量時不需要指定類型,Python會根據 = 右側的值自動推導變量類型

 

數字型

數字型可以直接進行四折運算

         int: 整形,即整數類型

         bool: 布爾類型,表示true(非零)或者false(0)

         float: 浮點型,表示有小數點的數字

         complex:複數型,用於科學計算

 

非數字型

 

字符串:str : 字符串類型,表示文字等,命名時必須使用” ”

字符串可以進行相加運算“”  + “”

字符串可以與整數進行相乘   “” * int

 

列表

元組

字典

 

查看變量類型: type(name)

 

函數

Input實現鍵盤輸入

Input :輸入的數據類型是str類型的變量

表達格式:字符串變量 = input(“提示信息:”)

 

類型轉換函數

Int(x)   可以把x字符串轉化爲整數

float(x)   可以把x字符串轉化爲浮點數

 

price =float(input("蘋果單價:"))
weight = float(input("蘋果重量:"))
money = price *weight
print(money)

 

變量的格式化輸出

% 爲格式化操作符,專門處理字符串的格式

%s    字符串

%d   整數,%06d表示輸出的整數顯示位數,不足的地方使用0補全 (數字6可以修改)

%f     浮點數, %.02f表示顯示小數點後兩位    (數字2可以修改)

%%    輸出%

 

 

price = float(input("請輸入蘋果單價:"))
weight =
float(input("請輸入蘋果重量:"))
money = price * weight
print('蘋果單價%.01f,購買了%.02f,需要支付%.02f'%(price,weight,money))

 

# 百分號的輸出例子
scale = 0.25
print("數據比例是%.2f%%" % (scale * 100))
# 此處有兩個格式化變量依次爲25 
#
所以要依次輸出兩個變量 %.2f 先顯示出數字,
#
然後%% 顯示出%,後面括號裏的變量 * 100 是因爲去掉%的除號作用

 

 

變量命名

標識符(只能用數字字母 下劃線組成,而且不能以數字開頭),標識符就是變量名

關鍵字:py內部的標識符,具有特殊功能

查看關鍵字:import keyword

>>> print(keyword.kwlist)

關鍵字如下

['False', 'None', 'True', 'and', 'as','assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except','finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda','nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with','yield']

 

變量命名規則:

1、  區分大小寫

2、  如果變量有多個單詞組成時各個單詞都使用小寫,單詞之間用 _ 下劃線連接,

如qq_number

 

判斷語句(if)又稱分支語句

格式:

# 定義一個整數變量記錄年齡
age = 18
# 判斷是否滿18
if age >= 18:
   
# 入果滿了18歲,就可以進網吧嗨皮
   
print("你已經成年,歡迎進網吧嗨皮")

 

 

 

比較運算符:

==   檢查兩邊是否相等,如果是返回True

!=           檢查兩個操作數的值是否相等,如果是,這條件成立,返回True

>     <       >=    <=

 

縮進:

If語句以及縮進部分是一個完整的代碼塊  (如果有多個縮進,都屬於if語句的管理)

如果沒有縮進則跳出來if語句的管理

 

# 定義一個整數變量記錄年齡
age = 15
# 判斷是否滿18
if age >= 18:
   
# 入果滿了18歲,就可以進網吧嗨皮
   
print("你已經成年,歡迎進網吧嗨皮")
   
print("歡迎歡迎")
print("遊戲結束")

 

else的格式:

if   要判斷的條件:

         條件成立時,要做的事情

         …

else:

         條件不成立時,要做的事情

         …

# 定義一個整數變量記錄年齡
age = int(input("今年多大?"))
# 判斷是否滿18
if age >= 18:
   
# 入果滿了18歲,就可以進網吧嗨皮
   
print("你已經成年,歡迎進網吧嗨皮")
   
print("歡迎歡迎")
else:
   
print("你還沒長大,回家寫作業")
   
print("趕緊離開")
# 這句代碼無論條件是否成立都會執行
print("遊戲結束")

 

 

邏輯運算:

邏輯運算符:(and        or     not)可以把多個條件按照邏輯進行連接,變成更復雜的條件。

and  運算符:與/並且,當兩個條件同時滿足,返回true。只要有一個不滿足就返回false

or  運算符:或/或者,兩個條件只要有一個成立,返回true。兩個條件都不滿足,返回false

not  運算符:取反。not + 條件。 非/不是,

 

if進階:elif

holiday_name = "平安夜"
if holiday_name == "情人節":
   
print("買玫瑰")
   
print("看電影")
elif holiday_name == "平安夜":
   
print("買蘋果")
   
print("吃大餐")
elif holiday_name == "生日":
   
print("買蛋糕")
else:
   
print("每天都是節日")

 

 

if的嵌套

elif的應用場景是:同時判斷多個條件,所有條件是平級的

if的嵌套是一個條件進行判斷的前提是,前一個條件成立。

語法格式

has_ticket = True
knife_length = 10
if has_ticket:
   
print("車票檢查通過,準備開始安檢")
   
if knife_length> 20:
       
print("你攜帶的刀太長,有%d釐米" % knife_length)
       
print("不允許上車")
   
else:
       
print("安檢通過,祝你旅途愉快!")
else:
   
print("大哥,請先買票")

 

 

隨機數的生成

要使用工具包,首先要導入工具包(產生隨機數的工具包)    導入工具包時應該放在所有代碼頂部,方便後面程序的讀取

import random

導入後再輸入random.   然後再按tab鍵,彈出多個函數進行選擇。

randint是產生隨機整數

例如:random.randint(12,20)   # 會生成隨機數n:12 <= n<= 20

下限必須小於上限

 

 

 

 

程序三大流程:

順序:從上到下,順序執行代碼

分支:根據條件判斷,決定執行代碼的分支   (if)

循環:讓特定代碼重複執行

循環

# 打印五遍 hollo python
#
定義一個整數變量,記錄循環次數
i = 1
# 開始循環
while i <= 5:
   
# 1> 希望在循環內執行的代碼
   
print("hellopython")
   
# 2> 處理計數器
   
i = i + 1

 

死循環產生原因:計數器沒有添加

 

賦值運算符:

=  賦值

+=  加法賦值

-=

*=

/=

//=  取整賦值

%=    取餘賦值

**=   冪賦值

 

 

程序計數方法

# 打印五遍 hollo python
#
定義一個整數變量,記錄循環次數
i = 0
# 開始循環
while i < 3:
   
# 1> 希望在循環內執行的代碼
   
print("hellopython")
   
# 2> 處理計數器
   
#i = i + 1
    i += 1
print("循環結束,輸出%d" % i)

 

循環計算

# 計算1-100 的累加求和結果
#
定義一個整型變量記錄循環次數
i = 0
# 定義最終結果變量
result = 0
# 開始循環
while i <= 100:
#    print(i)
    # 每一次循環,都讓resulti這個計數器相加
   
result += i
# 處理計數器
   
i += 1
print("0-100相加結果是%d" %result)

 

 

0-100偶數相加

# 計算0-100之間所有偶數求和結果
#
開發步驟
#
# 1
、編寫循環  確認要處理的數字
# 2
添加結果變量,在內部處理計算結果

#
定義一個記錄最終結果的變量
result = 0
# 準備循環
i = 0


while i <= 100:
   
#判斷變量i中的數值是否是偶數
   
if i % 2 == 0:
       
print(i)
       
result += i
    i += 1
print("輸出結果%d" % result

 

 

break 與cotinue

 

i = 0

while i < 10:
   
#continue 某條件滿足時,不執行後續代碼,其餘條件滿足時,繼續執行後續代碼
   
# i == 3
    if i == 3:
       
# 注意:在循環中,如果使用continue這個關鍵字
       
# 在使用之前,需要確認循環的計數是否修改,
       
# 否則可能造成死循環
       
i += 1
       
continue
   
print(i)
   
i += 1

 

 

while循環嵌套

畫小星星

# 打印連續五行*,每行*依次遞增
#*
#**
#***
#****
#*****
# 1
、定義一個計數器變量,從數字一開始,循環比較方便

row = 1
# 2開始循環
while row <= 5:

   
print("*" *row)

   
row += 1

 

print函數的一個增強:

默認情況下,print函數輸出內容時,會在末尾增加換行

如果不希望在末尾增加換行,可以在print函數輸出內容後面增加   ,end=””

其中””中間可以指定print函數輸入內容後,繼續希望顯示的內容

# 在默認情況下,print函數輸出內容後,會自動在內容末尾增加換行
print("*", end="da")
print("*")

 

while循環嵌套

# 需求:
#
連續輸入五行小星星*,而且每行比前一行多一個*
#
開發步驟
# 1>
完成五行內容的輸出
# 2>
分析每行內部 * 應該如何處理
row = 1
while row <= 5:

   
# 每一行打印的星星與行數相同
   
# 增加一個小的循環,專門負責當前行中,每一列的星星顯示
   
# 定義一個列的計數器變量
   
col = #
   
#開始循環
   
while col <= row:
       
#print("%d" %col)
       
print("*", end="")
       
col += 1
   
#print(" %d " %row)

   
#這行代碼的目的,就是在一行星星輸出後,在末尾增加換行
   
print("")

   
row += 1

 

 

打印九九乘法表: (由打印小星星演變而來)

# 打印九行小星星
row = 1
while row <= 9:
   
col = 1
   
while col <= row:
       
#print("*",end="")
       
print("%d * %d =%d" % (col, row, col * row), end=" ")

       
col += 1
   
#print("%d" %row)
   
print("")
   
row += 1

 

修改後,打印結果對齊了

# 打印九行小星星
row = 1
while row <= 9:
   
col = 1
   
while col <= row:
       
#print("*",end="")
       
# \t  在控制檯輸出一個製表符,協助在輸出文本時垂直方向保持對齊
       
print("%d * %d =%d" % (col, row, col * row), end="\t")

       
col += 1
   
#print("%d" %row)
   
print("")
   
row += 1

 

字符串中的轉義字符

\t  在控制檯輸出一個製表符,協助在輸出文本時垂直方向保持對齊

製表符的功能是在不使用表格的情況下在垂直方向按列對齊文本

\n  在控制檯輸出一個換行符

 

# \t  在控制檯輸出一個製表符,協助在輸出文本時垂直方向保持對齊
print("1\t2\t3")
print(
"10\t20\t30")


# \n 在控制檯輸出一個換行符
print("hello\n python")
# 一個\可以使"單獨輸出來
print("hello\"hello")

 

 

函數:

定義格式:

def 函數名():

         函數封裝的代碼

         。。。

def multiple_table():
   
# 打印九行小星星

 

函數調用:

直接通過輸入 函數名() 即可完成調用

 

# 注意:定義好函數後,只表示這個函數封裝了一段代碼而已
#
如果不主動調用函數,函數是不會主動執行的
def say_hello():
   
print("hello1")
   
print("hello2")
   
print("hello3")
say_hello()

 

函數調試:(debug)

f8: 對一般的代碼進行調試

f7: 對封裝好的函數內部進行調試(使用f8不能對函數內部進行調試)

 

 

函數參數的使用

在函數名後面的小括號內填寫參數

多個參數之間用, 分隔

def sum_2_num(num1, num2):
   
"""對兩個數字的求和"""
   
result = num1 +num2

   
print("%d + %d =%d " %(num1, num2, result))
   

   
sum_2_num(20, 30)

 

 

形參和實參

形參:定義函數時,小括號中的參數,用來接收參數用的,在函數內部作爲變量使用

實參:調用函數時,小括號內的參數,是用來把數據傳遞到函數內部的

實例:如上一頁的num1 num2就是形參,20 30就是實參

 

函數的返回值:

(使用return進行返回函數計算結果,函數外部使用一個變量對return返回值進行接收)

 

def sum_2_num(num1, num2):
   
"""對兩個數字的求和"""

   
result = num1 +num2
   
return result


# 可以使用變量來接收函數執行的返回結果
sum_result = sum_2_num(20, 30)
print("計算結果:%d" % sum_result)

 

注意:return 表示返回,後續的代碼都不會被執行

 

函數的嵌套調用:

一個函數裏邊又調用另外一個函數

 

def test1():
   
print("*" * 50)



def test2():
   
print("-" * 50)

   
# 函數的嵌套調用
   
test1()
   
print("+" * 50)

test2()

 

打印多條分隔線

def print_line(char, times):
   
print(char * times)


# print_line("*", 20)
def print_lines():

   
i = 0
   
while i < 5:
       
print_line("-", 20)
       
i += 1
print_lines()

 

使用模塊(工具包)中的函數

以py擴展名結尾的Python文件就是一個模塊

 

使用import導入,導入後,就可以使用  模塊.變量/模塊.函數的方式,使用這個模塊中定義的變量或函數

 

高級變量

列表(list):

使用一個變量儲存多個數據,列表用[]定義,數據之間使用,分隔

列表的索引從0 開始

 

列表基本使用:

name_list = ["張三", "李四", "王五"]

# 1.取值於取索引
print(name_list[0])

# 知道數據內容,想確定數據在列表位置,使用index取出索引

print(name_list.index("李四"))

# 2.修改
name_list[1] = "大傻逼"

# 3.增加
# append
方法可以向列表末尾追加數據
name_list.append("王小二")

# insert 方法可以在列表的指定索引位置插入數據
name_list.insert(1, "小美眉")

# extend 方法可以把其他列表中的完整內容,追加到當前列表末尾
temp_list = ["孫悟空", "豬八戒", "沙師弟"]
name_list.extend(temp_list)

# 4.刪除
# remove
方法可以從列表中刪除指定數據
name_list.remove("王五")
# pop方法默認可以把列表中最後一個元素刪除
name_list.pop()
# pop可以指定要刪除元素的索引
name_list.pop(3)
# clear 方法可以清空列表
name_list.clear()

print(name_list)

 

del關鍵字:

name_list = ["張三", "李四", "王五"]

# 使用del關鍵字(delete)刪除列表元素
del name_list[1]

# del 關鍵字本質上是用來將一個變量從內存中刪除,因爲delname變量,所以會報錯
name = "小明"
del name
print(name)
print(name_list)

 

 

列表數據的統計:

name_list = ["張三", "李四", "王五", "張三"]
# len length長度)函數可以統計列表中的元素總數
list_len = len(name_list)
print("列表中包含 %d 個元素" % list_len)

# count 方法可以統計列表中某一個數據出現的次數
count = name_list.count("張三")
print("張三出現了 %d " % count)

 

 

列表的排序:

name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [
6, 8, 4, 1, 10]
# # 升序
# name_list.sort()
# num_list.sort()

# #
降序
# name_list.sort(reverse=True)
# num_list.sort(reverse=True)

# #
反轉
# name_list.reverse()
# num_list.reverse()

print(name_list)
print(num_list)

 

 

Python關鍵字與函數:

關鍵字:在終端中輸入:

>>> import keyword

>>> print(keyword.kwlist)

 

循環遍歷(for):

name_list = ["張三", "李四", "王五", "王小二"]
# 使用迭代遍歷列表
"""
順序的從列表中以此獲取數據,每一次循環過程中,數據都會依次保存在
my_name
這個變量中,在循環體內部可以訪問到當前這一次獲取到的數據
for my_name in
列表變量:

   
print("我的名字叫 %s" %my_name)
"""
for my_name in name_list:

   
print("我的名字叫 %s" % my_name)

 

元組(tuple):

與列表相似,但元組使用()定義,數據之間用,分隔,,元組一旦定義就不可以修改,索引也是從0 開始

元組的常用操作:在終端中定義一個元組,例如,info = ()

輸入info. 按下tab鍵,就會彈出元組能夠使用的函數

 

info_tuple = ("小明", 18, 1.85)
# 格式化字符串後面的()本質上就是元組
print("%s年齡是%d,身高是%.2f" % ("小明", 18, 1.85))

print("%s年齡是%d,今年%.2f" % info_tuple)
# 本質上就是一個字符串
info_str = "%s年齡是%d,今年%.2f" % info_tuple
print(info_str)

 

 

元組與列表之間的轉換:

使用list函數可以把元組轉換成列表

list(元組)

使用tuple函數可以把列表轉換成元組

tuple(列表)

 

字典:(與矩陣有點像)

一般字典用於存儲描述一個物體的相關信息

字典用{}定義,字典使用鍵值對儲存數據,鍵值對之間使用,分隔

鍵 key  是索引

值 value 是數據

鍵和值之間使用:分隔

鍵必須是唯一的

值可以取任何數據類型,但鍵只能使用字符串、數字、或元組

# 字典是一個無序的數據集合,使用print函數輸出字典是,通常
#
輸出結果的順序與定義的順序是不一致的!

xiaoming = {"name": "小明",
           
"age": 18,
           
"gender": True,
           
"height": 1.75,
           
"weight": 75.5}
print(xiaoming)

 

 

xiaoming_dict = {"name": "小明"}
# 1.取值
print(xiaoming_dict["name"])

# 2.增加/修改
#
如果key不存在,就會新增鍵值對
xiaoming_dict["age"] = 18
# 如果不存在,就會修改已經存在的鍵值對
xiaoming_dict["name"] = ["小小明"]
# 3.刪除
xiaoming_dict.pop("name")

print(xiaoming_dict)

 

字典的遍歷:

xiaoming_dict = {"name": "小明",
                
"qq": "123456",
                
"phone": "10086"}

# 迭代遍歷字典
#
變量k是每一次循環中,獲取到的鍵值對的key
for k in xiaoming_dict:

   
print("%s -%s" % (k, xiaoming_dict[k]))

 

字典應用場景:

# 將多個字典放在一個列表中,在進行遍歷,
#
在循環體內部針對每一個字典進行相同的操作
card_list = [
   
{"name": "張三",
    
"qq": "123456",
    
"phone": "110"},
   
{"name": "李四",
    
"qq": "54321",
    
"phone": "10086"}
]
for card_info in card_list:
   
print(card_info)

 

 

字符串操作:(字符串操作巨多)

hello_str = "hello hello"

# 1.統計字符串長度
print(len(hello_str))
# 2.統計某一個小(子)字符串出現的次數
print(hello_str.count("llo"))

# 2.某一個子字符串出現的次位置
print(hello_str.index("llo"))

 

字符串查找與替換:

hello_str = "hello world"

# 1、判斷是否以指定字符串開始
print(hello_str.startswith("hello"))

# 2、判斷是否是以指定字符串結束
print(hello_str.endswith("world"))

# 3、查找指定字符串
print(hello_str.find("llo"))

# 替換字符串
# replace
方法執行完成後,會返回一個新的字符串
#
注意:不會修改原有字符串內容
print(hello_str.replace("world", "python"))

print(hello_str)

 

文本對齊:

# 要求:順序並且居中對齊輸出以下內容
poem = ["\t\n登黃鶴樓",
       
"王煥之",
       
"白日依山盡\t\n",
       
"黃河入海流", "欲窮千里目", "更上一層樓"]
for poem_str in poem:
   
# 先使用strip方法去除字符串中的空白字符
   
# 在使用center方法居中顯示文本

   
print("|%s|" %poem_str.center(10, " ")) # 居中
   
# print("|%s|" %poem_str.strip().center(10, " ")) # 居中

   
# print("|%s|" %poem_str.ljust(10, " "))  # 左對齊
   
# print("|%s|" %poem_str.rjust(10, " "))  # 右對齊
# print(poem)

 

 

字符串的切片:

切片方法適用於字符串、列表、元組(字典不可以切片)

 

運算符

完整的for循環語法:

for num in [1, 2, 3]:
   
print(num)

   
if num == 2:
       
break
else
:
   
# 如果循環體內部使用了break退出了循環
   
# else下方的代碼就不會被執行
   
print("會執行嗎")
print("循環結束")

 

 

student = [
   
{"name": "阿土"},
   
{"name": "小美"}
]
# 學員列表中搜索指定的姓名
find_name = "阿土"
for stu_dict in student:
   
print(stu_dict)
   
if stu_dict["name"] == find_name:
       
print("找到%s" % find_name)
       
# 如果找到了,就應該直接退出循環,而不再遍歷後續的元素
       
# 如果break執行了,那麼else程序就不會執行
       
break
else
:
   
# 如果希望搜索列表時,所有字典檢查一遍之後,都沒有發現需要搜索的目標
   
# 還希望得到一個統一的提示!
   
print("抱歉沒有找到%s"% find_name)
print("循環結束")

 

 


 

待更 ...


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章