0

0

python基础教程之简单入门说明(变量和控制语言使用方法)

php中文网

php中文网

发布时间:2016-06-16 08:44:49

|

1476人浏览过

|

来源于php中文网

原创

简介
有兴趣可以看看: 解释性语言+动态类型语言+强类型语言

交互模式:(主要拿来试验,可以试试 ipython)

复制代码 代码如下:

$python
>>> print 'hello world'

脚本

复制代码 代码如下:

#!/usr/bin/env python
print 'hello world'


环境:

建议python2.7 + easy_install + pip + virtualenv + ipython

缩进
Python 函数没有明显的 begin 和 end,没有标明函数的开始和结束的花括号。唯一的分隔符是一个冒号 (:),接着代码本身是缩进的。

例子:

复制代码 代码如下:

#函数
def func(value):
    print value  #缩进

    if value == 1:
        value += 1
    elif value == 2:
        pass
    else:
        value += 10

标识符
变量是标识符的例子。 标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循这些规则:

1.python中的标识符是区分大小写的。

2.标示符以字母或下划线开头,可包括字母,下划线和数字,大小写敏感

3.以下划线开头的标识符是有特殊意义的。

以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;
以双下划线开头的(__foo)代表类的私有成员;
以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如init()代表类的构造函数。

4.标识符不能是保留字

复制代码 代码如下:

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

变量

赋值语句

1、赋值语句建立对象引用值
2、变量名在首次赋值时会被建立
3、变量名在引用前必须先赋值,不能引用未声明赋值的变量


赋值方式

简单赋值
Variable(变量)=Value(值)

复制代码 代码如下:

s = ‘spam'

多变量赋值

python中原始的元组和列表赋值语句形成,最后已被通用化,以接受右侧可以是是任何类型的序列,只要长度相等即可。注意,长度一定相等
Variable1,variable2,...=Value1,Value2,...

复制代码 代码如下:

s,h = ‘a','b'  元组赋值,位置性  【常用】
[s,h] =[‘a','b'] 列表赋值,位置性
a,b,c,d = ‘spam' 序列赋值,通用性
a,*b = ‘spam' 拓展序列解包(python3)

多目标赋值

Lovart
Lovart

全球首个AI设计智能体

下载
复制代码 代码如下:

a=b=variable

s = h = ‘spam' 多目标赋值


注意:多个变量内存中指向同一对象,对于可变类型需要,修改一个会对其他造成影响

自变赋值

复制代码 代码如下:

如+=,-=,*=等。

在自变赋值中,python仅计算一次,而普通写法需计算两次;

自变赋值会修改原始对象,而不是创建一个新对象。

复制代码 代码如下:

s +=42 增强赋值
x += y

优点:

复制代码 代码如下:

左侧只需计算一次,优化技术自动原处修改,更快
l +=[] 原处修改
l = l+[] 复制,生成新的对象

运算符
一个表达式可以分解为运算符和操作数

运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示

运算符需要数据来进行运算,这样的数据被称为 操作数

运算符优先顺序列表(从最高到最低)

复制代码 代码如下:

运算符   描述
'expr'  字符串转换
{key:expr,...}  字典
[expr1,expr2...]    列表
(expr1,expr2,...)   元组
function(expr,...)  函数调用
x[index:index]  切片
x[index]    下标索引取值
x.attribute 属性引用
~x  按位取反
+x,-x 正,负
x**y    幂
x*y,x/y,x%y 乘,除,取模
x+y,x-y   加,减
x>y 移位
x&y 按位与
x^y 按位异或
x|y 按位或
x=y,x>y   比较
x is y,x is not y 等同测试
x in y,x not in y 成员判断
not x   逻辑否
x and y 逻辑与
x or y  逻辑或
lambda arg,...:expr Lambda匿名函数

结合规律

运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算

计算顺序

默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。好的做法:默认对复杂的运算加括号,而不是依赖于默认结合和计算顺序

真值
真值测试

1、任何非零数字或非空对象都为真
2、数字零,空对象以及特殊对象None都为假
3、比较和相等测试都会递归地运用到数据结构中
4、比较和相等测试会返回True或False


真值表

复制代码 代码如下:

对象/常量   值
""  假
"string"    真   
0   假
2>=1    真
-2()空元组 假
[]空列表 假
{}空字典 假
None    假

布尔表达式
三种布尔表达式运算符

复制代码 代码如下:

x and y
x or y
not x

比较
数字通过相对大小进行比较
字符串时按照字典顺序的,一个字符一个字符比较
列表和元组从左到右对每部分的内容进行比较
字典通过排序后的键值列表进行比较
数字混合类型比较在python3是错误的,但是python2.6支持,固定但任意的排序规则

布尔数
有两个永远不改变的值True,False
布尔是整型的子类,但不能被再继承
没有nonzero()方法的对象的默认值是True
对于值为0的任何数字或空集,值False
在数学运算中,Bollean值的True和False分别对应于1和0
基本控制流

if
基本的条件测试语句,用来判断可能遇到的不同情况,并针对不同的情况进行操作

基本形式

复制代码 代码如下:

if :
  
elif :
  
else:
  

注意

python根据缩进判断, elif和else部分是可选的

例子:

复制代码 代码如下:

a = 1
b = 2
c = 3;d=4 #两个放一句用分号隔开,不过建议分行

if a     print("branch a")
elif a == b:
    print("branch b")
else:
    print("branch c")
switch

python 本身没有 switch 语句,若需要,用if/elif/else实现完成同样的工作,某些情况可以考虑用字典

也可以用dict的形式

if/else三元运算符

复制代码 代码如下:

A = ((X and Y) or Z)
A = Y  if X else Z
例: a = ‘t' if x else ‘a'
[code]

for

基本语法

循环控制语句,可以用于循环遍历某一序列

else块可选,在循环终止的时候执行,若是break终止循环,else不执行

格式:
[code]
for in :
    if:
       break
    if:
       continue
   
else:
   

注意:

1.对象集合可以是列表,字典以及元组等
2.for..in循环对于任何序列都适用
3.for遍历一个字典时,遍历的是字典的键

复制代码 代码如下:

rang & xrange

可以通过range()函数产生一个整数列表,完成计数循环

复制代码 代码如下:

range([start,] stop[, step])

start可选参数,起始数
stop终止数,若为x,产生从0-(x-1)的整数列表
step可选参数,步长,未写默认为1
range(1,5) 包含序列为 [1,2,3,4]

xrange和range区别

(python3.x的可无视)

在Range的方法中,它会生成一个list的对象,但是在XRange中,它生成的却是一个xrange的对象,当返回的东西不是很大的时候,或者在一个循环里,基本上都是从头查到底的情况下,这两个方法的效率差不多。但是,当返回的东西很大,或者循环中常常会被Break出来的话,还是建议使用XRange,这样既省空间,又会提高效率。

复制代码 代码如下:

>>> print range(1, 5)
[1, 2, 3, 4]
>>> print xrange(1, 5)
xrange(1, 5)

在上面语句中,range返回了一个普通List,而xrange返回了一个特定的xrange类型的对象。由于 xrange 方法也创建整数 list(其使用相同参数),所以它与 range 方法非常相似。但是,xrange 方法仅在需要时才在 list 中创建整数。当需要迭代大量整数时,xrange 方法更适用,因为它不会创建极大的 list,那样会消耗大量计算机内存。

while

与if语句类似,含一个条件测试语句,循环,允许重复执行一个语句块。

可选else语句块,同for的else块。

格式:

复制代码 代码如下:

while :
   if :
      break
   if :
      continue
  
else:
  

说明:

while循环条件变为False的时候,else块才被执行
若是使用break结束循环,while可选的else块不执行
python没有do while或do until循环语句
break & continue & pass
break,终止循环语句,停止循环,若是for/while循环中终止,其else不执行

continue,结束当前,进入下一轮循环 - 跳到最近所在循环的开头处(来到循环首行)

pass 什么事也不做,只是空占位语句,它用于那些语法上必须要有什么语句,但程序什么也不做的场合

循环else块 :只有循环正常离开时才会执行,即

如果你从for或while循环中break终止 ,任何对应的循环else块将不执行。记住,break语句也可以在for循环中使用

其他

编写循环的技巧:
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便的做到这一点

>>>

复制代码 代码如下:
for x in a[:]: # make a slice copy of the entire list
...    if len(x) > 6: a.insert(0, x)

在字典中循环时,关键字和对应的值可以使用 iteritems() 方法同时解读出来
复制代码 代码如下:

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.iteritems():
...     print k, v
...
gallahad the pure
robin the brave

在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到。
复制代码 代码如下:

>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...     print i, v

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

136

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

47

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

90

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

226

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

504

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

170

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

286

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号