第二章是落下了导入函数那部分,现在补上
函数:
Howdy!
Howdy!!!
Hello there.
21.0
3.5
Error: Invalid argument.
None
42.0
函数原型:range(start, end, scan):
参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
import random
for i in range(0, 10, 2):
print(random.randint(1, 10),end = "\t")
2 9 6 10 10
用sys.exit()提前退出程序:
import sys
while True:
print('Type exit to exit.')
response = input()
if response == 'exit':
sys.exit()
print('You typed ' + response + '.')
Type exit to exit.
函数:
def hello():
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
hello()
Howdy!
Howdy!!!
Hello there.
return语句:
import random
def getAnswer(answerNumber):
if answerNumber == 1:
return 'It is certain'
elif answerNumber == 2:
return 'It is decidedly so'
elif answerNumber == 3:
return 'Yes'
elif answerNumber == 4:
return 'Reply hazy try again'
elif answerNumber == 5:
return 'Ask again later'
r = random.randint(1, 5)
fortune = getAnswer(r)
print(fortune)
局部和全局作用域 :
局部变量与C语言java语言都差不多,唯一有区别的就是global ,声明为全部变量是局部变量不能有一名字的变量。还有就是有点类似java的super关键字,可以在局部修改全局变量。
异常处理:
与java的差不多,没啥需要注意的
def spam(divideBy):
try:
return 42 / divideBy
except ZeroDivisionError:
print('Error: Invalid argument.')
print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
21.0
3.5
Error: Invalid argument.
None
42.0
实践项目:
#Collatz 序列
#编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,
#那么 collatz()就打印出 number // 2, 并返回该值。如果 number 是奇数, collatz()就打
#印并返回 3 * number + 1。
#然后编写一个程序, 让用户输入一个整数, 并不断对这个数调用 collatz(), 直
#到函数返回值1(令人惊奇的是, 这个序列对于任何整数都有效, 利用这个序列,
#你迟早会得到 1! 既使数学家也不能确定为什么。 你的程序在研究所谓的“Collatz
#序列”,它有时候被称为“最简单的、 不可能的数学问题”)。
def Collatz(number):
if number % 2 == 0:
print(number//2)
return number//2
else:
print(number * 3 + 1)
return number * 3 + 1
def fun(number):
number = Collatz(number)
if number != 1:
fun(number)
number = input()
fun(int(number))