python学习——编程基础

(一)条件控制

一、if语句

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

*if语句的关键字为:if – elif – else。

注意:

  1. 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
  2. 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  3. 在Python中没有switch – case语句。

eg1:

#!/usr/bin/python3
 
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:
    print("你是在逗我吧!")
elif age == 1:
    print("相当于 14 岁的人。")
elif age == 2:
    print("相当于 22 岁的人。")
elif age > 2:
    human = 22 + (age -2)*5
    print(f"相当于{human}岁的人。")#f-string使用方法

### 退出提示
input("点击 enter 键退出")

eg2:

#!/usr/bin/python3 
 
# 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
    guess = int(input("请输入你猜的数字:"))
 
    if guess == number:
        print("恭喜,你猜对了!")
    elif guess < number:
        print("猜的数字小了...")
    elif guess > number:
        print("猜的数字大了...")

二、if嵌套

在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。
eg:

num=int(input("请输入一个数字:"))

if num%2==0:
    if num%3==0:
        print(f"数字{num}可以整除2和3")
    else:
        print(f"数字{num}可以整除2但不能整除3")
else:
    if num%3==0:
        print(f"数字{num}不能整除2但可以整除3")
    else:
        print(f"数字{num}既不能整除2也不能整除3")

(二)循环语句

  • for
  • while

一、while循环

同条件控制一样,需要注意冒号和缩进。另外,在 Python 中没有 do…while 循环。

#计算0到num之和
num=int(input("请输入一个数字"))
sum=0
i=1
while(i<=num):
    sum=sum+i
    i=i+1
print(f"0到{num}之和等于{sum}")

无限循环:
设置条件表达式永远不为 false 来实现无限循环。

var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)
 
print ("Good bye!")

while 循环使用 else 语句

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

二、for语句

“Baidu”, “Google”,“Runoob”,"Taobao"依次进入for循环中,当轮到Runoob进入if判断 if site == “Runoob”:时,执行break语句,跳出for循环,完成循环。break 语句用于跳出当前循环体

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鸟教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

range()函数
使用内置range()函数,遍历数字序列。

>>> for i in range(5):
...   print(i)
...
0
1
2
3
4
>>> for i in range(5,9):
...   print(i)
...
5
6
7
8
>>> for i in range(0,10,3):#3指定不同的增量
...   print(i)
...
0
3
6
9
>>> for i in range(-10,-100,-30):
...   print(i)
...
-10
-40
-70

结合range()和len()函数遍历一个序列的索引

a=['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']

for i in range(len(a)):
    print(f"{i}-{a[i]}")

(三)迭代器与生成器

一、迭代器

迭代:访问集合元素的一种方式
迭代器:可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器两个基本方法
1.iter()
2.next()

字符串,列表或元组对象都可用于创建迭代器:
iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 next() 方法并通过 StopIteration 异常标识迭代的完成。

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self
 
  def __next__(self):
    x = self.a
    self.a += 1
    return x
 
myclass = MyNumbers()
myiter = iter(myclass)
 
for x in range(5) :
    print(next(myiter))

StopIteration
StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 next() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。
在20次迭代后停止循环:

class MyNumbers:
  def __iter__(self):
    self.a = 1 #起始数字
    return self
 
  def __next__(self):
    if self.a <= 20: #迭代到20停止
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration
 
myclass = MyNumbers()
myiter = iter(myclass)
 
for x in myiter:
  print(x)

二、生成器

生成器:使用了 yield 的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
调用一个生成器函数,返回的是一个迭代器对象。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行

斐波那契数列_生成器

#!/usr/bin/python3
 
import sys
 
def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
 
while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()
上一篇:python zipfile 压缩文件夹的方法


下一篇:入门Python基础第四天