Python3 编程第一步
从第一个程序开始,用变量、循环与函数写出斐波那契数列等小例子。
第一个程序
Step one is always making something run and print. print accepts several arguments, separating them with spaces and ending with a newline by default.
print("Hello, Python!")
print("a", "b", "c")
print(1, 2, 3, sep="-")Hello, Python!
a b c
1-2-3变量与计算
Variables need no declaration — assignment creates them. Python is dynamically typed, so a name can hold an int and later a string, though changing type usually signals a design problem.
a = 10
b = 3
print(a + b, a - b, a * b)
print(a / b)
print(a // b, a % b, a ** b)
a = "now a string"
print(a, len(a))13 7 30
3.3333333333333335
3 1 1000
now a string 12斐波那契数列
The Fibonacci sequence is the classic first exercise: the first two terms are 1 and each later term is the sum of the previous two. Both while and for work; the point is understanding how variables roll forward.
a, b = 0, 1
n = 10
result = []
while len(result) < n:
result.append(a)
a, b = b, a + b
print(result)
print(sum(result))[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
88用函数封装
Wrapping the logic in a function makes it reusable and testable. Default parameters add flexibility, and yield gives a generator version that saves memory.
def fib(n, a=0, b=1):
out = []
for _ in range(n):
out.append(a)
a, b = b, a + b
return out
def fib_gen(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
print(fib(8))
print(list(fib_gen(8)))
print(sum(fib_gen(20)))[0, 1, 1, 2, 3, 5, 8, 13]
[0, 1, 1, 2, 3, 5, 8, 13]
10945end 关键字
print ends with a newline by default; change end to keep output on one line — handy for progress bars or tables.
for i in range(5):
print(i, end=' ')
print()
for i in range(3):
print(i, end='')
print(' done')
print('a', end=' -> ')
print('b')0 1 2 3 4
012 done
a -> b第一个程序
编程第一步永远是让程序跑起来并输出点什么。print 可以接收多个参数,默认用空格分隔、末尾换行。
print("Hello, Python!")
print("a", "b", "c")
print(1, 2, 3, sep="-")Hello, Python!
a b c
1-2-3变量与计算
变量不需要声明,赋值即创建。Python 是动态类型:同一个名字可以先绑整数再绑字符串,但类型变化往往意味着设计有问题。
a = 10
b = 3
print(a + b, a - b, a * b)
print(a / b)
print(a // b, a % b, a ** b)
a = "now a string"
print(a, len(a))13 7 30
3.3333333333333335
3 1 1000
now a string 12斐波那契数列
斐波那契数列是经典的入门练习:前两项是 1,之后每项等于前两项之和。用 while 或 for 都能写,关键是理解变量在循环中如何滚动。
a, b = 0, 1
n = 10
result = []
while len(result) < n:
result.append(a)
a, b = b, a + b
print(result)
print(sum(result))[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
88用函数封装
把逻辑装进函数后就能复用和测试。带默认参数的函数更灵活;用 yield 则可以得到生成器版本,省内存。
def fib(n, a=0, b=1):
out = []
for _ in range(n):
out.append(a)
a, b = b, a + b
return out
def fib_gen(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
print(fib(8))
print(list(fib_gen(8)))
print(sum(fib_gen(20)))[0, 1, 1, 2, 3, 5, 8, 13]
[0, 1, 1, 2, 3, 5, 8, 13]
10945end 关键字
print 默认结尾换行,把 end 改成别的字符串就能让多次输出连成一行 —— 打印进度条或表格时很有用。
for i in range(5):
print(i, end=' ')
print()
for i in range(3):
print(i, end='')
print(' done')
print('a', end=' -> ')
print('b')0 1 2 3 4
012 done
a -> b