Python基礎一

来源:https://www.cnblogs.com/yanjieli/archive/2018/09/20/9678525.html
-Advertisement-
Play Games

Python基礎:print & input & 變數 & 運算符 & Python數據類型 & 運算符與表達式 Python 基礎 1 註釋 單行註釋 多行註釋 三個單引號'''括起來 三個雙引號"""括起來 print 輸出 作用:列印到屏幕上一些信息 可以接受多個字元串,用逗號分隔,遇到逗號會 ...


Python基礎:print & input & 變數 & 運算符 & Python數據類型 & 運算符與表達式

Python 基礎 1

註釋

單行註釋

#我註釋了一行

多行註釋

三個單引號'''括起來

'''
我可以註釋多行
我可以註釋多行
我可以註釋多行
'''

三個雙引號"""括起來

"""
我可以註釋多行
我可以註釋多行
我可以註釋多行
"""

 print 輸出

作用:列印到屏幕上一些信息

可以接受多個字元串,用逗號分隔,遇到逗號會輸出一個空格

print(" It's a beautifu day", "Nice day", "my finished")
print(18)
print(10 + 8)
print("10 + 8 =", 18)

input 輸入

作用:從外部獲取變數的值

等待輸入(阻塞),輸入的內容報錯在age里

age = input("請輸入您的年齡:")
print("age =", age)

變數

概述:程式可操作的存儲區的名稱,程式運行期間能改變的數據,每個變數都有特定的類型;把程式運行的中間結果臨時的存在記憶體里,以便後續的代碼調用。

作用:將不同類型的數據存儲到記憶體

變數的定義:變數名 = 初始值(為了確定變數的類型)

數據的存儲:變數名 = 數據值 (註意:變數在使用前必須先“定義”(即賦予變數一個值),否則會出現錯誤)

刪除變數:del 變數名 (刪除後變數無法引用)

定義變數的規則

  變數名只能是 字母 、數字或下劃線的任意組合

  變數名的第一個字元不能是數字

  變數的定義要具有可描述性

以下關鍵字不能聲明為變數名:

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

推薦定義方式

#駝峰體

AgeOfOldboy = 56

NumberOfStudents = 80

#下劃線

age_of_oldboy = 56

number_of_students = 80

變數的賦值

#!/usr/bin/env python
# -*- coding: utf-8 -*-

name1 = "wupeiqi"
name2 = "alex"

#!/usr/bin/env python
# -*- coding: utf-8 -*-

name1 = "taibai"
name2 = name1

定義變數不好的方式舉例

  變數名為中文、拼音

  變數名過長

  變數名詞不達意

常量

常量即指不變的量,如pai 3.141592653..., 或在程式運行過程中不會改變的量

數據類型

什麼是數據類型?

  我們人類可以很容易的分清數字與字元的區別,但是電腦並不能呀,電腦雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,“漢”是文字,否則它是分不清1和‘漢’的區別的,因此,在每個編程語言里都會有一個叫數據類型的東東,其實就是對常用的各種數據類型進行了明確的劃分,你想讓電腦進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字元串類型給他。

整數 int

 Python可以處理任意大小的整數,當然包括負整數,在程式中的表示和數學的寫法一樣

num1 = 10
num2 = num1
print(id(num2))
1998374864
# 連續定義多個變數
num3 = num4 = num5 = 1
print(num3, num4, num5)
1 1 1
#互動式賦值定義變數
num6, num7 = 6, 7
print(num6, num7)
6 7

布爾值 bool

布爾值就兩種:True,False。就是反應條件的正確與否。

真   1   True。

假   0   False。

浮點數 float

浮點型由整數部分與小數部分組成,浮點數運算可能會有四捨五入的誤差

f1 = 1.1
f2 = 2.2
f3 = f1 + f2
print(f3)
3.3000000000000003

字元串類型(str)

在Python中,加了引號的字元都被認為是字元串!

>>> name = "Alex Li" #雙引號
>>> age = "22"       #只要加引號就是字元串
>>> age2 = 22          #int
>>> hometown = 'ShanDong'   #單引號也可以

那單引號、雙引號、多引號有什麼區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下麵這種情況 你需要考慮單雙的配合

msg = "My name is Alex , I'm 22 years old!"

多引號什麼作用呢?作用就是多行字元串必須用多引號

msg = '''
今天我想寫首小詩,
歌頌我的同桌,
你看他那烏黑的短髮,
好像一隻炸毛雞。
'''
print(msg)

數據類型轉換

print(int(1.9))
1
print(float(1))
1.0
print(int("123"))
123
print(float("12.3"))
12.3
#如果有其他無用字元會報錯
print(int("abc"))
print(int("123abc"))
Traceback (most recent call last):
  File "H:/Python項目/day/file.py", line 2, in <module>
    print(int("abc"))
ValueError: invalid literal for int() with base 10: 'abc'
#只有作為正負號才有意義
print(int("+123"))
123
#print(int("12+3"))    #無意義會報錯
print(int("-123"))
-123

數字功能

返回數字的絕對值 abs

a1 = -10
a2 = abs(a1)
print(a2)
10

比較兩個數的大小

a3 = 100
a4 = 9
print((a3>a4)-(a3<a4))
1

返回給定參數的最大值 max

print(max(1,2,3,4,5,6,7,8))
8

 返回給定參數的最小值 min

print(min(1,2,3,4,5,6,7,8))
1

 求 x 的 y 次方 pow

print(pow(2, 5))
32

 round(x[,n])返回浮點數x的四捨五入的值,如果給出n值,則代表舍入到小數點後n位

print(round(3.456))
3
print(round(3.556))
4
print(round(3.456, 2))
3.46
print(round(3.546, 1))
3.5

數學相關的庫 math

import math
#   向上取整
print(math.ceil(18.1))
19
print(math.ceil(18.9))
19
#   向下取整
print(math.floor(18.1))
18
print(math.floor(18.9))
18
#   返回整數部分與小數部分
print(math.modf(22.3))
(0.3000000000000007, 22.0)
#   開方
print(math.sqrt(16))
4.0

range 指定範圍,生成指定數字

for i in range(1,10):
    print(i)

for i in range(1,10,2):  # 步長
    print(i)

for i in range(10,1,-2): # 反向步長
    print(i)

隨機數 random

從序列的元素中隨機挑選一個元素

import random print(random.choice([1,3,5,7,9])) 5 print(random.choice(range(5))) #range(5)== [0,1,2,3,4] 3 print(random.choice("Lee")) #"Lee" == ["L","e","e"] e

產生一個1~100之間的隨機數

r1 = range(1,101)
for i in r1:
    print(i)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

從指定範圍內,按指定的基數遞增的集合中選取一個隨機數

#   random.randrange([start,] stop[,step])
#   start--指定範圍的開始值,包含在範圍內,預設是0
#   stop--指定範圍的結束值,不包含在範圍內
#   step--指定的遞增基數,預設是1
print(random.randrange(1,100,2))
13
#    從0-99選取一個隨機數
print(random.randrange(100))
61

隨機生成[0,1]之間的數(浮點數)

print(random.random())
0.14728254253360773

隨機生成一個實數,它在[3,9]範圍

print(random.uniform(3,9))
4.516309142130013

運算符與表達式

算數運算

表達式:由變數、常量和運算符組成的式子

算術運算符和算術運算表達式

算術運算符

+   -    *    /     %      **      //

以下假設變數:a=10,b=20

比較運算

以下假設變數:a=10,b=20

賦值運算

以下假設變數:a=10,b=20

邏輯運算

 

and

邏輯與:  and
邏輯與運算表達式:表達式1  and  表達式2
值:
如果表達式1的值為真,表達式2的值也為真,整體邏輯與運算表達式的值為真
如果表達式1的值為真,表達式2的值為假,整體邏輯與運算表達式的值為假
如果表達式1的值為假,表達式2的值為真,整體邏輯與運算表達式的值為假
如果表達式1的值為假,表達式2的值也為假,整體邏輯與運算表達式的值為假  
【有一個為假就為假】 
表達式1  and  表達式2  and  表達式3  and  ......  and  表達式n
num1 = 10
num2 = 20
if num1 and num2:
    print("&&&&&&&&&&&")
&&&&&&&&&&&

or

邏輯或: or
邏輯或運算表達式:表達式1  or  表達式2
值:
表達式1的值為真,表達式2的值為真,邏輯或運算表達式為真
表達式1的值為真,表達式2的值為假,邏輯或運算表達式為真
表達式1的值為假,表達式2的值為真,邏輯或運算表達式為真
表達式1的值為假,表達式2的值為假,邏輯或運算表達式為假
【有一個為真就為真】
表達式1  or  表達式2  or  表達式3  or  ......  or  表達式n
num3 = 0
num4 = 1
if num3 or num4:
    print("||||||||||")
||||||||||

not

邏輯非:  not
邏輯非運算表達式:   not 表達式
值:
如果表達式的值為真,整體邏輯非運算表達式的值為假
如果表達式的值為假,整體邏輯非運算表達式的值為真
【顛倒黑白】
if not 0:
    print("++++++++++")
++++++++++

成員運算符

in:如果在指定的序列中找到值返回True,否則返回False
not in: 如果在指定的序列中沒有找到值返回True,否則返回False

身份運算符

is:判斷兩個標誌符是不是引用同一個對象
is not:判斷兩個標誌符是不是引用不同的對象

運算符優先順序

運算符優先順序
**
~ + -   正負號(一元加減)
*   /   %   //
+   -
>>  <<
&
~   |
<=  <   >   >=
==  !=
=   %=  +=  -=  //= 
is  in not
in  not in 
and     or      not

if for while 語句

if 語句

格式:

if 表達式:
    語句...

邏輯:當程式執行到if語句時,首先計算“表達式”的值,如果“表達式”的值為真,那麼執行if下的“語句”,如果“表達式”的值為假,則跳過整個if語句繼續向下執行。
何為真假?

假:0    0.0    ''    None    False
真:除了假就是真
num5 = 10
num6 = 20
if num5 == num6:
    num5 = 100
print("num5 =", num5)
num5 = 10
--------------------------------
num5 = 20
num6 = 20
if num5 == num6:
    num5 = 100
print("num5 =", num5)
num5 = 100

if -else 語句

格式:

if 表達式:
    語句1
else:
    語句2

邏輯:當程式執行到if-else語句時,首先計算“表達式”的值,如果表達式的值為真,則執行 “語句1”。執行完“語句1”跳出整個if-else語句。如果“表達式”的值為假,則執行“語句2”。執行完“語句2”跳出整個if-else語句。

num = int(input())
if num % 2 == 0:
    print("是偶數")
else:
    print("是奇數")

if-elif-else 語句

格式:

if  表達式1:
    語句1
elif 表達式2:
    語句2
elif 表達式3:
    語句3
……
elif 表達式n:
    語句n
else:                    #可有可無
    語句e

邏輯:當程式執行到if-elif-else語句時,首先計算“表達式1”的值,如果“表達式1”的值為真,則執行“語句1”,執行完“語句1”,則跳過整個if-elif-else語句。如果“表達式1”的值為假,計算“表達式2”的值。如果“表達式2”的值為真,則執行“語句2”,執行完“語句2”,則跳過整個if-elif-else語句。如果“表達式2”的值為假,計算“表達式3”的值。如此下去直到某個表達式的值為真才停止,如果沒有一個真的表達式,且有else,則執行“語句e”

age = int(input())
if age < 0:
    print("娘胎里")
if age >=0 and age <= 3:
    print("嬰兒")
if age >=4 and age <= 6:
    print("兒童")
if age >=7 and age <= 18:
    print("童年")
if age >=19 and age <= 30:
    print("青年")
if age >=31 and age <= 40:
    print("壯年")
if age >=41 and age <= 50:
    print("中年")
if age >=51 and age <= 100:
    print("老年")
if age >=101 and age <= 150:
    print("老壽星")
if age > 150:
    print("老妖怪")

for 迴圈語句

格式:

for 變數名 in 集合:
    語句

邏輯:按順序取“集合”中的每個元素賦值給“變數”,在去執行語句。如此迴圈往複,直到取完“集合”中的元素截止

range([start,] end[, step])函數 列表生成器
start預設為0,step預設為1
功能呢:生成數列
a = range(10)
print(a)
range(0, 10)

for x in range(10):
    print(x, end=" ")
0 1 2 3 4 5 6 7 8 9

for y in range(2, 20, 2):
    print(y, end=" ")
2 4 6 8 10 12 14 16 18

同時遍歷下標和元素

方法一:
for index, m in enumerate([1,2,3,4,5]): #index, m = 下標,元素
    print(index, m)
0 1
1 2
2 3
3 4
4 5

方法二:
index = 0
for i in range(1,6):
    print(index, i)
    index += 1
0 1
1 2
2 3
3 4
4 5

while 迴圈語句

格式:

while 表達式:
    語句
邏輯:當程式執行到while語句時,首先計算“表達式”的值,如果“表達式”的值為假,那麼結束整個while語句。如果“表達式”的值為真,則執行“語句”,執行完“語句”再去計算“表達式”的值。如果“表達式”的值為假,那麼結束整個while語句。如果“表達式”的值還為真,則執行“語句”,執行完“語句”再去計算“表達式”的值。如此迴圈往複,知道表達式的值為假才停止。
while 表達式:
    語句1
else:
    語句2

邏輯:在條件語句(表達式)為False時執行else中的“語句2”

a = 1
while a <= 3:
    print("lee is a good man!")
    a += 1
else:
    print("very very good")

print("you are right")

break 語句

作用:

跳出for和while的迴圈

註意:只能跳出距離他最近的那一層迴圈

for i in range(10):
    print(i)
    if i == 5:
        break

num = 1
while 1 <= 10:
    print(num)
    if num == 3:
        break
    num += 1
#註意:迴圈語句可以有else語句,break導致迴圈截止,不會執行else下麵的語句
else:
    print("lee is a good man")

continuc 語句

作用:跳出當前迴圈中的剩餘語句,然後繼續下一次迴圈

註意:跳出距離最近的迴圈

for i in range(10):
    print(i)
    if i == 3:
        continue
    print("*")
    print("&")

num = 0
while num < 10:
    print(num)
    if num == 3:
        num += 1
        continue
    print("*")
    print("&")
    num += 1

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.寫一個方法將數組換成前端更易解析的樹狀結構 2.統計字元串出現最多的字母 3.排序演算法 4.去重演算法 5.二分查找演算法(建立在已經排好序的情況下) ...
  • 適配器設計模式在JavaScript中非常有用,在處理跨瀏覽器相容問題、整合多個第三方SDK的調用,都可以看到它的身影。 其實在日常開發中,很多時候會不經意間寫出符合某種設計模式的代碼,畢竟設計模式就是老前輩們總結提煉出來的一些能夠幫助提升開發效率的一些模版,源於日常的開發中。 而 其實在 中應該是 ...
  • 說起js,對很多初學者來說可能還是比較費力的,本人也是覺得js功底還是不夠扎實,所以把有些東西在學習一遍,順便分享出來希望可以幫到有需要的人 “三元運算符” 什麼是三元運算符 條件?條件成立執行:條件不成立執行; 相當於簡單的if()else()語句 舉個慄子: var num=10; if(num ...
  • 什麼是快速開發框架 前言 做為一個程式員,在開發的過程中會發現,有框架同無框架,做起事來是完全不同的概念,關係到開發的效率、程式的健壯、性能、團隊協作、後續功能維護、擴展......等方方面面的事情。很多朋友在學習搭建自己的框架,很多公司也在創建或使用自己的框架,網上開源的框架多如牛毛,每年新上線的 ...
  • 前言:王福朋老師的 "JavaScript原型和閉包系列" 文章看了不下三遍了,最為一個初學者,每次看的時候都會有一種 “大徹大悟” 的感覺,而看完之後卻總是一臉懵逼。 原型與閉包 可以說是 JavaScirpt 中理解起來最難的部分了,當然,我也只是瞭解到了一些皮毛,對於 JavaScript O ...
  • 標準庫 bind 函數 詳解 bind函數:接收一個函數名作為參數,生成一個新的函數。 arg_list中的參數可能包含入_1, _2等,這些是新函數newCallable的參數。 在這篇博客 "lambda 表達式 介紹" 中,討論了find_if的第三個參數的問題,當時是用lambda表達式解決 ...
  • 一、為什麼要Maven 在開發中經常需要依賴第三方的包,包與包之間存在依賴關係,版本間還有相容性問題,有時還里要將舊的包升級或降級,當項目複雜到一定程度時包管理變得非常重要。 Maven是當前最受歡迎的Java項目管理構建自動化綜合工具,類似以前Java中的Ant、node.js中的npm、dotN ...
  • Java當中的常量池 在 虛擬機 中,記憶體分佈為: 虛擬機堆,程式計數器,本地方法棧,虛擬機棧,方法區。 程式計數器是 執行程式的流水線,是用來存放一些指令的,本地方法棧是 操作系統方法所使用的棧,而虛擬機棧是用來執行程式代碼的棧,在方法區中有 類變數,類信息,方法信息,常量池(符號的引用,以表的形 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...