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.
"""
pass
1.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 a
trailing 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.
"""
pass
2.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)
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)
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
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()
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()
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()
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()
Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解的更多相关文章
- Python 输入输出 数据类型 变量
python输入输出 数据类型 变量 输入输出 print()在Python3中是函数 >>>print('hello world') #print注意print前面不要有任何空格 ...
- (转)python标准库中socket模块详解
python标准库中socket模块详解 socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的 ...
- python标准库介绍——10 sys 模块详解
==sys 模块== ``sys`` 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. === 处理命令行参数=== 在解释器启动后, ``argv`` 列表包含了传递给脚本的所有 ...
- jmeter--函数助手对话框之参数详解
详解JMeter函数和变量 测试人员可以在JMeter的选项菜单中找到函数助手对话框("Function Helper"对话框),如图11-1所示. 图11-1 函数助手(Func ...
- Redis数据类型使用场景及有序集合SortedSet底层实现详解
Redis常用数据类型有字符串String.字典dict.列表List.集合Set.有序集合SortedSet,本文将简单介绍各数据类型及其使用场景,并重点剖析有序集合SortedSet的实现. Li ...
- python标准库介绍——14 gc 模块详解
==gc 模块== (可选, 2.0 及以后版本) ``gc`` 模块提供了到内建循环垃圾收集器的接口. Python 使用引用记数来跟踪什么时候销毁一个对象; 一个对象的最后一个引用一旦消失, 这个 ...
- nginx应用场景,特性,目录结构,常用模块,内置变量,URL和URI,http状态码,配置文件详解
1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, ...
- 标准C语言的输入输出流(i/o)方法详解
cppreference.com -> 标准 C I/O ->详细说明 标准 C I/O clearerr 语法: #include <stdio.h> void cleare ...
- 【转载】标准C语言的输入输出流(i/o)方法详解
标准 C I/O clearerr 语法: #include <stdio.h> void clearerr( FILE *stream ); clearerr函数重置错误标记和给出的流的 ...
随机推荐
- C#进阶之路(四):拉姆达
对于拉姆达,许多文章都讲过原理及如何使用,所以这篇文章我主要是摘录我学习过的文字,总结下我自己的学习心得. 什么是拉姆达表达式 "Lambda表达式"是一个匿名函数,是一种高效的类 ...
- Loadrunner-场景设置以及监控结果分析
一.Controller的基本工作原理:通过1.2.3设置来模拟用户的操作,收集出4的各种信息 二.场景设置一般步骤 1.新建场景(Controller) 2.添加脚本 3.设置Schedule(设置 ...
- 异常[PersistenceUnit: default] Unable to build Hibernate SessionFactory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManage ...
- What makes an inferred latch? how To avoid creating inferred latches? when do you know you need latches?
What makes an inferred latch?For combinatorial logic, the output of the circuit is a function of inp ...
- 机器学习:SVM(scikit-learn 中的 SVM:LinearSVC)
一.基础理解 Hard Margin SVM 和 Soft Margin SVM 都是解决线性分类问题,无论是线性可分的问题,还是线性不可分的问题: 和 kNN 算法一样,使用 SVM 算法前,要对数 ...
- 使用Asset Pipeline管理rails生产环境静态资源实现步骤
1. 修改项目中指向静态资源文件的链接 a) 访问静态资源文件 <%= stylesheet_link_tag "application", media: &q ...
- SpringMVC---依赖注入与面向切面
1.依赖注入与面向切面 1.1.出现背景 ——如何简化java开发? 其中很重要的一点是“组件化”. ——如何更好的“组件化”? 松耦合,以及尽可能的让组件专注于本身. ——Spring框架的目的也只 ...
- 三种web性能压力测试工具
三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...
- PDM/CDM中进行搜索
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl '当前model '获取当前活 ...
- Winsock 示例
#include "stdafx.h" #include <Windows.h> #include <iostream> #pragma comment(l ...