Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解
1 標準輸出
python3利用 print() 來實現標準輸出
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print"""print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)Prints the values to a stream, or to sys.stdout by default.Optional keyword arguments:file: a file-like object (stream); defaults to the current sys.stdout.sep: string inserted between values, default a space.end: string appended after the last value, default a newline.flush: whether to forcibly flush the stream."""pass1.1 輸出字符串
在 sprint() 的括號中加上字符串就可以在控制臺輸出指定的文字,比如輸出 “Hello Boy” 的實現代碼如下
print("Hello Boy")
1.2 輸出多個字符串
print() 函數可以接收多個字符串,各個字符串之間用逗號進行隔開,在輸出時逗號不會輸出而是用空格代替
print("Hello", "Boy", "Good", "World")技巧01:print() 可以接收多個字符串的原理是print() 方法可以接收任意多個參數,這一點從源碼中可以看出;詳情請參見方法的形參部分知識點
技巧02:遇到逗號用空格代替的原因是print()方法有一個默認參數 seq ,該參數的作用就是作為多個輸出值的分隔符,其默認值就是空格
1.3 輸出整數或者計算結果
輸出整數時直接會將整數進行輸出,輸出計算結果時會對數學表達式進行計算后再將結果進行輸出
1.4 輸出多個變量
print() 方法也可以接收多個變量進行輸出,各個變量之間利用逗號進行分隔
1.5 結束符
print() 方法默認的結束符時換行符,這一點從源碼中可以看出
1.5.1 默認結束符的效果
1.5.2 自定義結束符的效果
?
2 標準輸入
python3提供的input()方法可以讓用戶輸入一個字符串,并存放到一個變量中去;print()方法可以在括號中添加提示信息,這些提示信息會被輸出到控制臺
def input(*args, **kwargs): # real signature unknown"""Read a string from standard input. The trailing newline is stripped.The prompt string, if given, is printed to standard output without atrailing newline before reading input.If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.On *nix systems, readline is used if available."""pass2.1 輸入字符串
2.2 輸入類型
利用input()輸入的數據都是字符串類型的數據
坑01:利用input()輸入的任何數據都是字符串類型的數據,如果想利用輸入的數據進行一些數學運算就必須進行類型轉換
2.2.1 input()實戰
需求:用戶根據提示信息提供圓的半徑和圓周率的取值,系統自動輸出直徑、圓周、面積等信息
坑01:在進行數學計算之前如果不對數據進行類型轉化就會報類型錯誤
radius = input("請輸入半徑:\n") PI = input("請輸入圓周率的取值:\n") diameter = float(radius) * 2 area = float(PI) * float(radius) * float(radius) perimeter = float(PI) * diameter print("直徑為:", diameter, ";周長為:", perimeter, "; 面積為:", area) View Code
?
3 數據類型
在程序中不同的數據需要定義不同的數據類型
3.1 整型
Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。計算機由于使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
技巧01:利用print()方法輸出十六進制的數時輸出的是轉化成了十進制的數
3.2 浮點型
浮點數也就是小數;浮點數可以用數學寫法,如1.23,3.14,-9.01;但是對于很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
3.3 字符串
字符串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。如果'本身也是一個字符,那就可以用""括起來,比如"I'm OK"包含的字符是I,',m,空格,O,K這6個字符。如果字符串內部既包含'又包含"怎么辦?可以用轉義字符\來標識。
3.3.1 多行字符串
\n 這個轉義字符代表換行,為了簡化,Python允許用'''...'''的格式表示多行內容
?
3.4 布爾型
布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要么是True,要么是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來。
3.5 空值
空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。
3.6 其他類型
列表、字典等多種數據類型,還允許創建自定義數據類型(即:對象)
待更新......2018-3-20 10:25:44
?
4 變量
變量的概念基本上和初中代數的方程變量是一致的,只是在計算機程序中,變量不僅可以是數字,還可以是任意數據類型。
變量在程序中就是用一個變量名表示了,變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭,比如:這種變量本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。例如Java是靜態語言,賦值語句為:String name = new String("warrior");
因為python是動態語言,所以一個變量的類型取決于該變量的指向,如果該變量的指向的東西的類型發生了變化,那么該變量的類型也會發生變化
4.1 變量在內存中的表示
技巧01:在python中一切都是對象,所以python中變量存儲的都是地址信息而不是數據值;變量的值就是變量指向數據的地址信息
name = "warrior"4.1.1 python解釋器會根據上面的代碼做兩件事
》在內存中創建一個“warrior”字符串
》在內存中創建一個名為name的變量,而且該變量指向“warrior”
4.1.2 變量之間的賦值
坑01:這里并不是將name01的值賦值給了name02,而是name02指向name01指向的數據
技巧01:因為name01和name02都指向同一個字符串"warrior",所以name01和name02的內容都是字符串"warrior"在內存中的地址信息(備注:因為name01和哪么02都指向了同一個字符串,所以他們的內存地址是一樣的,他們的值也是一樣的)
解釋:
python解釋器在遇到?name02 = name01 這行代碼時執行的操作
》在內存中創建一個名為name02變量
》讓name02變量指向name01所指向的內容(理解:name01和name02中存放的不是數據,而實數據對應的地址信息,name02 = name01實際上是將name01中存放的地址信息賦值給了name02)
解釋:
python解釋器在遇到?name02 = “fury” 這行代碼時執行的操作
》改變name02的指向,即:改變name02中存放的地址信息值
技巧01:變量的指向發生變化后,變量的值以及變量的地址都會發生變化
技巧02:變量的值就是變量指向數據的地址信息
name01 = "warrior" name02 = name01 print("name01指向的值為:",name01,"-----", "name02指向的值為:",name02) print("name01變量的地址信息為:", id(name01),"-----", "name02變量的地址信息為:", id(name02)) print(name01 is name02) print(name01 == name02) name01 = "fury" print("name01指向的值為:",name01,"-----", "name02指向的值為:",name02) print("name01變量的地址信息為:", id(name01),"-----", "name02變量的地址信息為:", id(name02)) print(name01 is name02) print(name01 == name02) View Code?
5 隨機數
python自帶的random模塊可以用來生成隨機數
5.1 猜數字游戲
5.1.1 需求
隨機產生一個數字同用戶輸入的數字進行比較,知道猜中為止
5.1.2 代碼實現
import random randomNum = random.randint(0,10) inputNum = input("請輸入一個0到10之間的整數:") judge = True while (judge):if (randomNum != int(inputNum)):if (randomNum < int(inputNum)):inputNum = input("大啦,請在輸入一個0到10之間的整數:")if (randomNum > int(inputNum)):inputNum = input("小啦,請在輸入一個0到10之間的整數:")else:print("恭喜你,才對啦!")judge = False View Code
? 5.1.3 改進
規定輸入次數、設定隨記數范圍
?
6 turtle模塊
? 6.1 命令介紹
6.1.1 運動命令
forward(d) -> 向前移動d個像素點
backward(d) -> 向后移動d個像素點
right(dgree) -> 向右轉動dgree度
left(dgree) -> 向左轉動dgree度
goto(x, y) -> 光標移動到(x, y)處
speed(apeed) -> 設定畫筆的速度,速度值為[0, 10]之間的整數
6.1.2 畫筆控制命令
down() -> 畫筆落下,即:開始畫圖
up() -> 畫筆抬起,即:停止畫圖
技巧01:goto(x,y) 之前一般需要執行up(),goto(x, y)之后一般需要執行down()
pensize(width) -> 設置畫筆的寬度的像素值
pencolor(color) -> 設置畫筆的寬度
fillcolor(color) -> 設置填充顏色
技巧02:fillcolor(color)通常需要和 begin_fill() 和 end_fill() 配合使用
begin_fill() -> 開始填充顏色
end_fill() -> 結束填充顏色
6.1.3 特殊指令
turtle.mainloop() -> 畫圖結束后靜止(注:其實是一直在重復畫,只是給我們個感覺是靜止而已)
6.2 練習
6.2.1 畫正三角形
# 畫三角形 import turtle t = turtle.Pen() t.fillcolor("blue") t.pencolor("red") t.pensize(4) t.begin_fill() t.forward(60) t.left(120) t.forward(60) t.left(120) t.forward(60) t.end_fill() turtle.mainloop() View Code
6.2.2 畫奧運五環
# 話奧運五環 import turtle t = turtle.Pen() t.pensize(4)t.pencolor("blue") t.circle(30)t.up() t.goto(70, 0) t.down() t.pencolor("black") t.circle(30)t.up() t.goto(140, 0) t.down() t.pencolor("red") t.circle(30)t.up() t.goto(35, -35) t.down() t.pencolor("yellow") t.circle(30)t.up() t.goto(105, -35) t.down() t.pencolor("green") t.circle(30)turtle.mainloop() View Code
6.2.3 利用循環畫
import turtle # 同時設置pencolor=color1, fillcolor=color2 turtle.color("red", "yellow")turtle.begin_fill() for i in range(50):turtle.forward(200)turtle.left(170) turtle.end_fill() turtle.mainloop() View Code
? 6.2.4 畫五角星
import turtle t = turtle.Pen() t.pencolor("yellow") t.fillcolor("red") t.pensize(4) t.begin_fill() for i in range(5):t.forward(100)t.right(144) t.end_fill() turtle.mainloop() View Code
?
轉載于:https://www.cnblogs.com/NeverCtrl-C/p/8608164.html
總結
以上是生活随笔為你收集整理的Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: s盘没有读的权限
- 下一篇: Openstack介绍