python学习笔记 第三章

第二章是落下了导入函数那部分,现在补上

函数原型: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))




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值