Python3程序设计指南:01 过程型程序设计快速入门
大家好,从本文开始将逐渐更新Python教程指南系列,为什么叫指南呢?因为本系列是参考《Python3程序设计指南》,也是作者的学习笔记,希望与读者共同学习。
.py文件中的每个估计都是顺序执行的,从第一行开始,逐行执行的。    Python的8个关键要素

1、数据类型
- int整数(正整数或负整数)
- Python所能表示的整数大小只受限于机器内存
- 使用int()可以将字符串转换为整数,允许字符串头尾带有空格,例如:int("68")
 
- str字符串(Unicode字符序列)
- 使用方括号([])来存取字符串序列中的某一项
- 使用str()几乎可以将任何数据项转换为字符串
 
2、对象引用
- 定义:存储某种数据类型的变量
- 语法:objectReference=value
- 不需要预先的声明语句,也不需要指定数据类型 
- 在Python中,"="的作用是将对象引用与内存中的某对象进行绑定,如果对象引用已经存在,就简单的进行绑定,以便引用”=“操作符右面的对象;如果对象引用尚未存在,就由”=“操作符创建对象引用。
- 限制:不能与任何Python关键字相同
- Python使用 “动态类型” 机制,也就是说,在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)。 
temp = 123
print(temp, type(temp))
temp = 'hello'
print(temp, type(temp))
output:
123 <class 'int'>
hello <class 'str'>3、组合数据类型
- 元组和列表可以用于存储任意数量、任意类型的数据项。元组是固定的,创建之后就不能改变;列表是可变的,在需要的时候,可以插入或者移除数据项。
- 实质上,列表与元组并不真正存储数据项,而是存放对象引用,创建列表与元组时(以及在列表中插入数据项时),实际上是使用其给定的对象引用的副本,在字面意义项(比如整数或字符串)的情况下,会在内存中创建适当数据类型的对象,而存放在列表或元组中的才是对象引用。
- 点(存取属性)操作符用于存取某对象的属性
4、逻辑操作符
4.1 身份操作符:is。
- 并不必须对进行比较的对象本身进行检查,is操作符只需要对对象所在的内存地址进行比较——同样的地址存储的是同样的对象。
a = [1, 'abc']
b = [1, 'abc']
print(a is b)
a = (1, 'abc')
b = (1, 'abc')
print(a is b)
a = b
print(a is b)
output:
False
False
True4.2 比较操作符:==、!=、>、>=、<、<=
- 与身份运算符不同,比较运算符进行的是值比较,即比较两个引用对象所指向的值。
a = [1, 'abc']
b = [1, 'abc']
print(a is b)
a = (1, 'abc')
b = (1, 'abc')
print(a is b)
a = b
print(a is b)
output:
True
True
True- 结链比较
a = 9
print(0 <= a <= 10)
output:
True4.3 成员操作符:in。
in来测试成员关系,用not in来测试非成员关系。
# in运算符
a = (3, 45, 'hello', {'name': 'lisi'})
print(45 in a)
string = 'zhangsan|wanger'
print('|' in string)
output:
True
True4.4 逻辑运算符:and、or与not。
- and与or都使用short-circuit逻辑,并返回决定结果的操作数——而不是返回布尔值(除非实际上就是布尔操作数)。
- not返回布尔型结果
5、控制流语句
在Python中,一块代码,也就是说一条或者多条语句组成的序列,称为suit。
5.1 if语句(if...elif...else...)
语法:
if boolean_expression1:
    suite1
elif boolean_expression2:
    suite2
else:
    suite35.2 while语句
while语句用于0次或多次执行某个suite,循环执行的次数取决于while循环中布尔表达式的状态,其语法为:
while boolean_expression:
    suite5.3 for...in语句
for循环语句重用了关键字in,其语法为:
for variable in iterable:
    suite5.4 基本的异常处理
Python的很多函数与方法都会产生异常,并将其作为发生错误或重要事件的标志。其语法为:
try:
    try_suite
except exception1 as variable1:
    exception_suite1
...
except exceptionN as variableN:
    excetpion_suiteN其中as variable部分是可选的。
6、算术操作符
- int数据类型是固定的,一旦赋值就不能改变 
- 除法操作符(/)产生一个浮点值
- 剥离操作符(//)产生一个整数值
- 增强赋值操作符
- 不可变数据类型:a+=8:a+8之后产生新的int对象,并与a重新绑定
- 可变数据类型:使用+=后,原始值改变,不会重新绑定
- a+=b与a=a+b区别:前者只查询一次a的值,有更快的可能性
- 字符串列表+=和append的区别
- li = ['aaa','bbb'] li += 'ccc' => li = ['aaa','bbb','c','c','c']
- li = ['aaa','bbb'] li.append( 'ccc') => li = ['aaa','bbb','ccc']
 
 
7、输入/输出
- 内置input()函数,用来接收用户的输入,输入之后按Enter键结束输入
- 内置print()函数可以输出所有python数据类型
8、函数的创建与调用
创建函数语法:
def functionName(arguments):
    suite- arguments可选,如果为多个参数,用逗号隔开
- 每个函数有一个返回值,默认为None,可以使用return value来制定返回值,可以是一个值,也可以是一组值
- 执行def时会创建一个函数对象,同时创建一个带有指定名的对象引用
实例
为了熟悉以上关键要素,我们用一个实例来练习一下:
创建一个生成随机整数组成的网格程序,用户可以规定需要多少行、多少列,以及整数所在的区域。
- 首先引入random模块,该模块用于生成随机数:
import random- 构建获取用户输入函数 - 该函数需要3个参数:msg为提示信息,minimum为最小值,default为默认值。该函数的返回值有两种情况:default(用户没有输入直接按Enter键),或者一个有效的整数。 
def get_int(msg, minimum, default):
    while True:
        try:
            line = input(msg)
            # 如果输入值为空并且default不为None
            if not line and default is not None:
                return defalut
            # 将输入转为整形
            i = int(line)
            # 如果输入值小于最小值,提示用户
            if i < minimum:
                print("must be >=", minimum)
            else:
                return i
        # 异常处理
        except ValueError as e:
            print(e)- 让用户输入相关的值
# 用户输入行数
rows = get_int('rows:', 1, None)
# 用户输入列数
columns = get_int('columns', 1, None)
# 用户输入最小值
minimum = get_int('minimum(or Enter for 0):', -10000, 0)
default = 1000
# 如果最小值大于default,default设置为最小值的2倍
if default < minimum:
    default = 2 * minimum
# 用户输入最大值
maximum = get_int('maximum (or Enter for' + str(default) + ')', minimum, default)- 根据用户输入输出随机值:
row = 0
while row < rows:
    line = ''
    column = 0
    while column < columns:
        # 生成一个大于minimum,小于maximum的随机整数
        i = random.randint(minimum, maximum)
        s = str(i)
        # 让每个数占10个字符,为了输出整齐
        while len(s) < 10:
            s = ' ' + s
        line += s
        column += 1
    print(line)
    row += 1以下为输出信息:
rows:5
columns7
minimum(or Enter for 0):-1000
maximum (or Enter for1000)1000
      -871      -205       426       820       986       369       238
      -389       485       388      -907       243       346      -912
      -885       528        50      -572       744       519      -128
       785      -747      -565      -390       522      -357       933
      -144       947      -949      -409       105       954       708注:本文知识介绍Python的8个关键要素,但是并没有完全介绍,比如数据类型不只包括整形和字符串,后面的文章中还会详细介绍。

本文由博客一文多发平台 OpenWrite 发布!
Python3程序设计指南:01 过程型程序设计快速入门的更多相关文章
- 01.JDBC操作数据库-快速入门操作
		/** * 简单入门操作 * 注:先将mysql-connector-java-5.1.36.jar 构建 Build Path环境当中去 * @param args * @throws Except ... 
- AngularJS快速入门指南01:导言
		AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ... 
- Spring Boot WebFlux-01——WebFlux 快速入门实践
		第01课:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ... 
- [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化
		[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ... 
- [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门
		[.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简 ... 
- [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门
		[.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习 ... 
- 《MEF程序设计指南》博文汇总
		<MEF程序设计指南>博文汇总 在MEF之前,人们已经提出了许多依赖注入框架来解决应用的扩展性问题,比如OSGI 实现以Spring 等等.在 Microsoft 的平台上,.NET Fr ... 
- 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB
		走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ... 
- [zhuan]《MEF程序设计指南》博文汇总
		http://www.cnblogs.com/beniao/archive/2010/08/11/1797537.html 在MEF之前,人们已经提出了许多依赖注入框架来解决应用的扩展性问题,比如OS ... 
随机推荐
- 2018 Multi-University Training Contest 2(部分题解)
			Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ... 
- this指哪儿
			this的指向问题 一.this初识 this是javascript中最复杂的机制之一.它尤为特殊,被自动定义在所有函数的作用域中.这篇文章将浅析this与函数的关系. 二.了解this 学习this ... 
- Angular 使用教程
			1.下载node.js,然后一直安装,可以修改一下node.js文件安装路径 查看是否node.js安装成功,在运行——cmd中输入以下代码.如果安装成功,则会显示出node.js的版本号 node ... 
- vue基础技术点列表(一)
			一. vue编写需要注意的细节1.vue初始化实例时使用首字母大写,在添加全局配置时也要首字母大写(如添加组件Vue.component("",{template:"&q ... 
- 史上最详 Thymeleaf 使用教程
			前言 操作前建议先参考我的另一篇博客:玩转 SpringBoot 2 快速整合 | Thymeleaf 篇 查看如何在SpringBoot 中使用 Thymeleaf.还有一点需要注意的是:模版页面中 ... 
- Hbase 日常运维
			日常维护的命令 1,major_compact 'testtable',通常生产环境会关闭自动major_compact(配置文件中hbase.hregion.majorcompaction设 为0) ... 
- hbase 修复 hbase hbck
			hbase hbck 新版本的 hbck 可以修复各种错误,修复选项是: (1)-fix,向下兼容用,被-fixAssignments替代 (2)-fixAssignments,用于修复region ... 
- SpringBoot 2.0 + Nacos + Sentinel 流控规则集中存储
			前言 Sentinel 原生版本的规则管理通过API 将规则推送至客户端并直接更新到内存中,并不能直接用于生产环境.不过官方也提供了一种 Push模式,扩展读数据源ReadableDataSource ... 
- c语言的数据类型,运算符,存储类型
			[1词法符号]1. 关键字:32个1) 存储类型:决定(设备)变量的存储位置auto(自动型).extern(外部引用) static(静态型) register(寄存器类型)2) 数据类型:决定设备 ... 
- ES6中的迭代器、Generator函数以及Generator函数的异步操作
			最近在写RN相关的东西,其中涉及到了redux-saga ,saga的实现原理就是ES6中的Generator函数,而Generator函数又和迭代器有着密不可分的关系.所以本篇博客先学习总结了ite ... 
