当前位置: 首页 > news >正文

python 速成指南

第一节. 过程式  python

python 的一个特点是不通过大括号 {} 来划定代码块,而是通过缩进。如果和 C/C++ 类比的话,就是在左括号的地方不要换行,然后用一个冒号 (:) 替代, C/C++ 大括号内部的东西,缩进一个 tab  或者几个空格都可以(但需要保持一致),比如:

if (x < 2):

print 'x < 2' elif (x > 2):

print 'x > 2'

else:

print 'bingo!' print 'x = 2'

注意两点:一是 python 语句结尾处没有分号(;)作为结束标记。二是和 C/C++ 不同,没有

else if,而是用 elif 替代,相当于可以少打几个字符吧。

类型系统

比如 int,string 等,type() 可以返回数据的类型,如:

>>> type(1)

<type 'int'>

>>> type('123')

<type 'str'>

python 尽管在声明变量的时候不指定类型,但变量其实是有类型的,用 c++0x 的概念来表达的话,实际上 python 的变量好像都是 auto 的,类型自动根据赋值推导出来。所以这样:

name = 'ddh' verb = ' is '

noun = ' good man'

sentence = name + verb + noun

没有问题,但:

name = 'cyberscorpio' age = 32

sentence = name + age

就会引发异常,因为字符串和数字不能直接相加。

可以通过 int() 或者 str() 强转类型,如上一句改成: sentence = name + str(age)

就不会有问题了。

容器类型

python 提供好用的两个容器:list 和 dict。插句题外话,其实最好用的容器还是 PHP 提供的关联数组,一个数组就包括了 python 中 list 和 dict 的全部功能,实在是很赞。

list

类似 array 的概念,例如: lst = list() lst.append('123') lst.append('456') lst.append(1000) print lst

for x in lst:

print x, ' type is ', type(x)

注意 list 内的数据可以是不同类型的,这一点会很方便。上面的输出是:

>>> print lst

['123', '456', 1000] # 注意里是 list 的字面表示方法,如 lst = ['123', '456', 1000]lst 一个 list

>>> for x in lst:

... print x, ' type is ', type(x)

...

123  type is  <type 'str'>

456  type is  <type 'str'>

1000 type is <type 'int'> # 这个是整型的数据

dict

类似于 std::map 的概念,当然,和 list 类似,dict 的 key  和 value  不要求是同一种类型。如:

dct = dict()

dct['name'] = 'cyberscorpio' dct['age'] = 32

dct['sex'] = 'male' print dct

for k in dct:

print k, ' is ', dct[k]

输出为:

>>> print dct

{'age': 32, 'name': 'cyberscorpio', 'sex': 'male'} # <

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vba发邮件的几种方法:新人如何快速上手?
  • OpenCV几何图像变换(1)映射转换函数convertMaps()的使用
  • 前端算法 | LeetCode第 70 题爬楼梯问题
  • 骑行耳机品牌前五名排行榜:5大优质骑行耳机闭眼入都不踩雷!
  • 哈佛大学年中回顾2024年ESG发展近况
  • 导出word格式的Javadoc(可用于快速生成项目详细设计文档)
  • Swoole 和 Java 哪个更有优势呢
  • 白骑士的HTML教学高级篇 3.4 性能优化
  • 音频分割怎么弄?手把手教会你实用的音频分割技巧
  • 5G毫米波测试助力突破高频段设备局限,实现高效外场测试
  • Json-复杂泛型解析工具类
  • Gaussian Splatting 在 Ubuntu22.04 下部署
  • 回顾加密风险投资15年演变:步履维艰,但总体向上
  • 存储管理功能
  • Redis 作为 PHP 的会话存储
  • [译]CSS 居中(Center)方法大合集
  • 《剑指offer》分解让复杂问题更简单
  • Docker 笔记(2):Dockerfile
  • Idea+maven+scala构建包并在spark on yarn 运行
  • mockjs让前端开发独立于后端
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python 基础起步 (十) 什么叫函数?
  • ReactNative开发常用的三方模块
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从PHP迁移至Golang - 基础篇
  • 那些被忽略的 JavaScript 数组方法细节
  • 人脸识别最新开发经验demo
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 提醒我喝水chrome插件开发指南
  • 微信小程序:实现悬浮返回和分享按钮
  • 消息队列系列二(IOT中消息队列的应用)
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​2021半年盘点,不想你错过的重磅新书
  • ​如何防止网络攻击?
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • $forceUpdate()函数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (floyd+补集) poj 3275
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转) Android中ViewStub组件使用
  • (转)JAVA中的堆栈
  • ******之网络***——物理***
  • ./和../以及/和~之间的区别
  • .net 简单实现MD5
  • .net 微服务 服务保护 自动重试 Polly
  • .net8.0与halcon编程环境构建
  • .NET企业级应用架构设计系列之应用服务器
  • .net下的富文本编辑器FCKeditor的配置方法
  • :class的用法及应用
  • @Autowired标签与 @Resource标签 的区别
  • @JSONField或@JsonProperty注解使用
  • @NoArgsConstructor和@AllArgsConstructor,@Builder