Python 3 快速入门 —— 流程控制与函数

本文假设你已经有一门面向对象编程语言基础,如 Java 等,且希望快速了解并使用 Python 语言。本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门。一些较偏的知识点在大家入门以后根据实际需要再查询 官方文档 即可,学习时切忌胡子眉毛一把抓。同时,一定要跟着示例多动手写代码。学习一门新语言时推荐大家同时去刷 leetcode ,一来可以快速熟悉新语言的使用,二来也为今后找工作奠定基础。推荐直接在网页上刷 leetcode ,因为面试的时候一般会让你直接在网页编写代码。 leetcode 刷题路径可以按我推荐的方式去刷。以下代码中,以 >>> 和 ... 开头的行是 交互模式 下的代码部分, >? 开头的行是 交互模式 下的输入,其他行是输出。 python 代码中使用 # 开启行注释。

编程前菜

>>> a, b = 0, 1
... while a < 10:
...    print(a, end=', ')
...    a, b = b, a+b     # 多重赋值,右表达式在赋值前就已经求值了
...    
0, 1, 1, 2, 3, 5, 8,     # Fibonacci series

如上为典型的 python 代码块, python 中的代码行无需以 ; 结尾,控制块以缩进标识开始和结束。 python 中的比较操作符与 C 和 Java 类似,需要注意的是: == 比较两个引用所指对象的值是否相同,要比较两个引用是否指向同一个对象需要使用 is 关键字,也可以通过 id 方法查看两个引用所指对象的id是否相同来判断。

>>> a = [1, 2, 3]
... b = [1, 2, 3]
... print('a = b:', a == b)
a = b: True          # a, b 中元素的 个数相同 且 值依次相等

>>> a is b
False				 # a, b 没指向同一个对象

>>> c = a
>>> c is a			 # a, c 指向同一个对象
True
>>> id(c)
2827535985280
>>> id(a)
2827535985280		 # c, a 所指对象id相同,故指向同一对象

流程控制

if 语句

Python 中的 if 语句包含: if 、 elif 以及 else 子句, elif 等同于 C 或 Java 中的 else if :

>>> x = int(input("input a digit: "))
... if a < 0:
...     print("Negative")
... elif a == 0:
...     print("Zero")
... else:
...     print("Positive")
...
input a digit: >? 10
Positive

for 和 while 语句

Python 中的 for 语句通常用来遍历列表和字符串等容器,它不能像 C 和 Java 中那样通过在for语句中添加条件判断和变量递增规则来控制for循环的次数:

>>> digits = [1, 2, 3]
... for x in digits:        # 遍历list
...     print(x, end=", ")
...     
1, 2, 3, 

>>> s = "python"
... for ch in s:            # 遍历字符串
...     print(ch, end=" ")
...     
p y t h o n

由于 Python 中 for 语句的这种“缺陷”,我们如何像 C 和 Java 那样在 for 语句中利于下标去遍历 list 呢?首先我们可以利用 while 循环:

# while中根据下标遍历list
>>> digits = [1, 2, 3]
>>> i = 0
... while i < len(digits):
...     print(digits[i], end=" ")
...     i = i + 1
...     
1 2 3 

# while中根据下标修改list
>>> digits = [1, 2, 3]
>>> i = 0
... while i < len(digits):
...     if digits[i] == 2:
...         digits[i] = 8
...     i = i + 1
...     
>>> print(digits)
[1, 8, 3]

其次,我们还可以利用 range() 函数和 enumerate() 函数:

# 使用range,以0为起点,len为终点(不包含),以1为步长创建下标序列
>>> digits = [1, 2, 3]
... for i in range(len(digits)):
...     print(digits[i], end=" ")
...     
1 2 3 

>>> digits = [1, 2, 3]
... for i in range(len(digits)):
...     if digits[i] == 2:
...         digits[i] = 8
... print(digits)
[1, 8, 3]

# 使用enumerate,创建枚举序列,可以同时取出位置索引和对应的值
>>> digits = [1, 2, 3]
... for i, v in enumerate(digits):
...     print(i, v)
...     
0 1
1 2
2 3

>>> digits = [1, 2, 3]
... for i, v in enumerate(digits):
...     if v &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值