亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

入門 Python

系統 1521 0

因為需求, 需要用到py, 所以來學學py, 因為有java基礎 一小時入門py語法是不成問題的, 但是僅僅入門基礎語法而已, 不涉及算法,不涉及大數據,機器學習,人工智能, 但是py這么火爆,就在于這幾個分支遍地開花,后續的路還好長啊

py的語法是真的簡單, 跟java比,真的簡單太多了, 而且 他的代碼很有條理, 因為他是嚴格控制縮進的,在一個縮進塊中,就好比一個隱形的大括號一樣,限制著變量的聲明周期


命名:文件/標識符/關鍵字

  • 標識符: 程序員定義的變量名,函數名
    • 可以由字母數字下劃線組成
    • 不能用數字開頭
    • 不能和已經存在的關鍵字重名
  • 關鍵字: Python內置的標識符
  • 文件名: 不推薦文件名以數字開頭,否則不能通過import關鍵字導入其他文件使用

注釋

  • 單行注釋使用 #
  • 多行注釋使用 ''' XXX '''

算數運算符

+ - * / == != > < >= <= %

加減乘除的使用方法和其他語言完全相同

//

取整數 求商

          
            9//2=4
          
        

**
冪運算

          
            2**3=8
          
        

列表常見運算

          
            print([1,2]+[3,4])#[1, 2, 3, 4]
          
        
          
            print([1,2]*2)#[1, 2, 1, 2]
          
        
          
            print(3 in [1,2,3])#True
print(3 not in [1,2,3])#False
          
        

對全局列表使用+=操作,相當于extend函數**

          
            def test(list):
    list+=list
    print(list)#[1, 3, 4, 1, 3, 4]
gl_list=[1,3,4]
test(gl_list)
print(gl_list)#[1, 3, 4, 1, 3, 4]
          
        

全局變量使用 = 賦值

不可變 全局變量 在函數內部 使用 = ,這種賦值操作, 原全局變量不會被影響

          
            gl_num=1
def test(num):
    print(num)#1
    num=2
    print(num)#2
    num+=3
    print(num)#5
test(gl_num)
print(gl_num)#1
          
        

在函數中, 如果 全局變量是可變類型 的, 如果在函數中往這個全局變量中添加內容了, 全局變量的值會受到影響

          
            gl_num=[1,3,4]
def test(num):
    print(num)#[1, 3, 4]
    num+=[1]
    print(num)#[1, 3, 4, 1]
test(gl_num)
print(gl_num)#[1, 3, 4, 1]
          
        

賦值運算符

          
            =
+=
-=
*=
/=      除法賦值運算符
//=     取整賦值運算符
%=      取模賦值運算符
**=     冪賦值運算符
          
        

轉義運算符

          
            \t 在控制臺上輸出一個制表符
\n 在控制臺上輸出一個換行符
\\ 反斜杠符
\' 輸出單引號
\r 回車
          
        

變量

變量的命名:

  • 區分大小寫 Abc != abc
  • 為了保證代碼的質量, = 兩邊預留兩個空格
  • 所有單詞全是小寫字節
  • 單詞之間使用下劃線連接 first_name

在py中,變量的類型是有不需要程序員指定,因為它是在運行時,由解釋器自己推斷出來的

例:

          
            name="小明"    # str  字符串類型
age=18         # int 整形
sex= True      # bool 布爾類型  True False 首字母都是大寫
height=1.78    # float 單精度小數類型
weiht=75.0     # float
weiht2=75      # int
          
        
  • 數字型
    • int: 整形
    • float: 浮點型
    • bool:布爾型
      • True: 所有非0的數字
      • False:0
    • 復數類型: complex
      • 主要用于科學計算
  • 非數字型:
    • str:字符串
    • 列表
    • 元組
    • 字典
      ```py
      在py2.0中
      type(2 ** 32) --> int
      type(2 ** 64) --> long

在py3.0中 全部都是 int, 在py中的計算能力,完爆其他語言

          
            print(type(2 ** 32))
print(type(2 ** 64))
print(type(2 ** 128))
print(type(2 ** 256))
print(type(2 ** 512))
print(type(2 ** 1024))
          
        

type函數可以直接查看變量的類型

          
            print(type(name))  # 結果 
            
          
        
  • 相同類型之間的計算規則
    • 數值型變量之間的計算
    • bool型, True被轉換成1 False被轉換成0
    • 字符串之間使用 + 拼接成連續串
  • 不同類型數據之間的計算規則
    • 字符串 * 整數 實現重復拼接串
          
            print("$"*10)#$$$$$$$$$$
          
        

  • 數字型變量和字符串之間 不能 進行其他類型操作
          
            d=10
f="10.5"
g=True
print(d+f+g)#TypeError: unsupported operand type(s) for +: 'int' and 'str'
          
        
  • 變量的輸入輸出
          
            passwd = input("請輸入密碼")
print(passwd)
print(type(passwd))
          
        
  • 類型轉換
          
            類型轉換函數
int(X)#將輸入轉換成整數
float(X)#將輸入轉換成浮點型
          
        
  • 變量的格式化輸出
          
            %s: 字符串
%d: 有符號十進制整數  %06d 表示輸出的整形顯示的位數, 不足的地方使用0補全
%f: 浮點型  %.02f 表示顯示小數點后兩位
%%: 輸出%

q=999
print("格式化的字符串是  %06d "%q)#000999
w=123.123456
e=123.123456
r=123.123456
print("格式化的字符串%.2f"%w)#123.12
print("%.1f %.2f %.3f"% (w,e,r))#123.1 123.12 123.123
t=0.25
print("%.2f%%" % t)#0.25%
          
        
  • 全局變量

全局變量推薦定義在全部代碼的最上方

全局變量的推薦命名規則

          
            g_XXX   gl_XXX
          
        

如何在 函數內部修改全局變量?

先使用 global 進行修飾,再修改

高級變量

如: 列表 元組 字典 字符串 公共方法

在python中全部的非數字型變量都支持以下特點

  1. 都是一個序列, 也可以理解成容器
  2. 取值 []
  3. 遍歷 for in
  4. 計算長度,最大/小 值 比較 刪除
  5. 連接+ 重復*
  6. 切片

列表

列表,在java叫數組

雖然列表可以存儲不同類型的數據,但是絕大多數情況下, 用它存儲相同類型的數據

使用 [] 定義, 數據之間使用 , 分隔
列表的索引從 0 開始

py中提供的常用操作

          
            python 中對列表提供的操作
1. 增加   列表insert(索引,數據)      在指定位置插入數據
          列表append(數據)           在末尾追加數據
          列表extend(列表2)         將列表2的數據追加到列表
2. 修改   列表[索引]=新值            修改指定索引的數據
3. 刪除   del列表[索引]              刪除指定索引的數據
          列表.remove[數據]         刪除第一個出現的指定的數據
          列表.pop                  刪除末尾的數據
          列表.pop(索引)            刪除指定索引的數據
          列表.clear                清空列表
4. 統計   len(列表)                 列表長度
          列表.count(數據)          數據在列表中出現的次數
5. 排序   列表.sort()               升序
          列表.sort(reserve=true)   降序排序
          列表.reserve()            逆序,反轉
6. 取索引  列表.index(數據)          返回數據在列表中的索引
          
        
  • 把變量從內存中刪除掉
          
            del name_list[0]
print(name_list[0])
          
        
  • 第一個參數位置的self 直接忽略就行
  • 迭代
          
            for name in name_list:
    print(name)
          
        

元組

元組 Tuple 和列表類似,但是元組的元素 不能修改

通常使用 元組 存儲不同類型的數據

元組表示多個元素組成的序列

下標從0開始
用戶存儲一串信息, 數據之間使用 逗號 分隔

  • 定義元組
          
            info_tuple = ("zhangsan",18,1.75)
print(type(info_tuple)) # 
            
          
        
  • 取值
          
            print(info_tuple[0])
print(info_tuple[1])
print(info_tuple[2])
# print(info_tuple[3])#tuple index out of range
          
        
  • 取索引
          
            print(info_tuple.index("zhangsan")) # 0
          
        
  • 統計計數
          
            print(info_tuple.count("zhangsan")) # 1
          
        
  • 定義空元組,一般是不定義空元組的,但是沒意義,因為不能再修改
          
            empty_tuple = ()
print(type(empty_tuple))#
            
          
        
  • 定義一個元素的元組
          
            single_touble1 = (5) # 解釋器會忽略兩個小括號
print(type(single_touble1))# 
            
                 被解釋器解釋成了int類型

single_touble2 = (5,) # 多加上一個逗號
print(type(single_touble2))#
              
            
          
        
  • 元組的應用場景
    • 作為入參: 可以使得函數一次性接受多個參數
    • 讓列表不可變,保護數據的安全
    • 作為返回值: 可以使函數一次性返回多個值
    • 格式化字符串, 在print函數中,格式化字符串時, 格式化字符串后面的() 本質上就是一個元組

例:

          
            print("年齡: %d   姓名:%s"%(123,"小明"))
info_tuple = ("zhangsan",18,1.75)
print(type(info_tuple)) # 
            
              
info_str="姓名:%s  年齡: %d  身高%.2f "% info_tuple
print(info_str)
            
          
        
  • 列表轉元組
          
            my_list = [1,3,4,5]
my_list = tuple(my_list)
print(type(my_list)) # my_list
          
        
  • 函數返回元組
          
            def mea():
    a=1
    b=2
    return (a,b)
    
# 接受
result = mea()

# 使用
print(result[0])
print(result[1])

# 也可以這樣接收, 注意, 變量的格式和元組的數保持一致
gl_a, gl_b = mea()
          
        

字典

字典是 無序對象 的集合 類似java中的 map,或者說是java中的一個對象

說它是無序,使用print輸出時,每次的順序不唯一

因為我們只關心通過key 取出 保存的數據,而不關心存儲的順序

字典使用{}定義

字典使用鍵值對存儲數據, 鍵值對使用 逗號分隔

key 是索引,并且是 不可變類型的變量才能當key (列表,字典是可變類型,不能當成key)

value 是數據

鍵和值之間使用 : 冒號分隔

鍵是唯一的

值任意數據類型

* 定義字典

          
            person={"name":"張三","age":23}
          
        
  • 取值
          
            # 取值
print(person["name"])# 入參位置的name是key
# print(xiaoming["name123"])# KeyError: 'name123'   key不存在,程序會報錯
          
        
  • 添加修改
          
            # 添加/修改, 如果key存在了, 就是修改, key不存在就是添加
person["height"]=1.78
print(person)
          
        
  • 刪除
          
            person.pop("age")
print(person)
          
        
  • 統計鍵值對的數量
          
            print(len(person))
          
        
  • 合并字典
          
            new_dir={"class":"大一"}
person.update(new_dir) # 如果被合并的字典中包含原有的鍵值對, 會覆蓋舊值
print(person)
          
        
  • 清空字典xiaoming
          
            xiaoming.clear()
print(xiaoming)
          
        
  • 遍歷
          
            for k in person:
    print(" value = %s "%person[k])
          
        
  • 字典和列表搭配使用
          
            將多個字典存入一個列表中,然后遍歷列表對實現對字典批量處理的動作
list = [
        {},
        {},
        {}
        ]
          
        

if分支判斷語句

          
            if 要頂格寫

if 條件1:
    XXX
elif ()or()or():
    XXX
else:
    XXX

嚴格控制縮進, tab 和 空格不能混用,容易亂
          
        

邏輯運算符

          
            與  and
或  or
非  not

條件1 and 條件2
條件1 or 條件2

對條件取反
not 條件1
not 條件2
          
        

循環

  • for循環
          
            for 變量 in 集合:
    XXX
else:
    XXX
          
        
  • while循環
          
            i=0
while i<5:
    print("i= %d"%i)
    #i=i+1
    i+=1
          
        

函數

格式如下

          
            def 函數名():
    XXX
    XXX

def 函數名():
    XXX
    XXX
    return XXX
          
        

內置函數

  • 隨機數
          
            import random
n = random.randint(1,5)# 1 <= n <= 5
m = random.randint(5,5)# n = 5
# s = random.randint(10,5)# 第一個數大于第二個數則保存
print("age== %d "%n)
          
        

缺省參數

  • 缺省參數, 簡化人們的編碼
          
            gl_list=[5,126,7]
gl_list.sort()
print(gl_list) # 默認正序
gl_list.sort(reverse=True) # 缺省參數位置,可以設置逆序
print(gl_list)
          
        
  • 指定缺省參數的默認值
          
            def print_info(name,gender=True):
    default_gender="男生"
    if not gender:
        default_gender = "女生"

    print("%s 是 %s"%(name,default_gender))

print_info("小明")
print_info("小明",False)
          
        

注意事項: 缺省參數必須保證它出現在 !!! 參數列表的末尾 !!!

  • 如何調用含有多個參數, 如果有多個參數的話, 中間位置的參數最好也設置上默認值
          
            def print_info(name,age="",gender=True):
    default_gender="男生"
    if not gender:
        default_gender = "女生"

    print("%s 是 %s"%(name,default_gender))

print_info("小明")
print_info("小明",gender=False)
          
        
  • 多值參數

在參數名前添加一個 * 可以接收元組

在參數名前添加兩個 * 可以接收字典

習慣用下面的方式命名:

  • *args :存放元組
  • **kw :存放字典數據
          
            
def demo(num,*nums,**person):
    print(num)
    print(nums)
    print(person)

demo(1)
'''
1
()
{}
'''
demo(1,23,4,5,6)

'''
1
(23, 4, 5, 6)
{}
'''

demo(1,23,4,5,6,name="張三",age=18)
'''
1
(23, 4, 5, 6)
{'name': '張三', 'age': 18}
'''



# 對比去除* 的寫法, 其實用戶在使用時變麻煩了,多增加了一個小括號
def print_info1(name):
    print(name)

print_info1((1,2,3,4))#(1, 2, 3, 4)
          
        

元組和字段的拆包

          
            def demo(*args,**kwargs):
    print(args)
    print(kwargs)

gl_nums=(1,2,3)
gl_dir={"name":"李四","age":12}

demo(gl_nums,gl_dir)
'''
 下面的運行結果其實是差強人意的, 需要進行拆包
((1, 2, 3), {'name': '李四', 'age': 12})
{}
'''

# 不拆包,直接調用
demo(1,2,3,name="李四",age=123)
'''
(1, 2, 3)
{'name': '李四', 'age': 123}
'''

# 拆包
demo(*gl_nums,**gl_dir)
'''
(1, 2, 3)
{'name': '李四', 'age': 12}
'''
          
        

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久伊伊香蕉综合精品 | 日本边添边爱边做视频 | 91精品国产福利尤物 | 国产高清美女一级毛片久久 | 日本不卡专区 | 国产成人高清亚洲一区91 | 人人乳乳香蕉大免费 | 热热色视频 | 最近免费中文字幕大全免费版视频 | 毛片免费在线观看 | jizz中国女人| 久久亚洲精品成人 | 精品精品国产高清a毛片牛牛 | 国产成人精品男人的天堂538 | 婷婷国产 | 97在线观看免费版 | 黄色www| 四虎最新网址在线观看 | 久热爱免费精品视频在线播放 | 一本色道久久综合一区 | 久久成人免费视频 | 97影院九七理论片男女高清 | 亚洲综合国产一区二区三区 | 日韩字幕一中文在线综合 | 999yy成年在线视频免费看 | 欧美日本成人 | 99久热国产精品视频尤物不卡 | 日韩欧美亚洲国产一区二区三区 | 欧美日韩一区二区三区自拍 | 久久频| 午夜在线网址 | 亚洲欧美视频二区 | 伊人成人在线观看 | 第一国内永久免费福利视频 | 日韩欧美国产中文字幕 | 国产在线19禁免费观看 | 一级毛片高清免费播放 | 亚洲一区二区三 | 久久夜色tv网站免费影院 | 一级女性全黄生活片免费 | 精品成人免费播放国产片 |