新手入门python,开始写一些简单函数,慢慢来,加油~

一、函数

  1. def myadd(a=1,b=100):
  2. result = 0
  3. i = a
  4. while i <= b: # 默认值为1+2+3+……+100
  5. result += i
  6. i += 1
  7. return result

跟R一样都可以用return返回

二、for

博客:Python for 循环语句

python中的for比R中的要广泛很多,R中的for (i in 1:3)循环的较多的是数值,python包括数值+文本列表。

1、字母当做循环

  1. for letter in 'Python': # 第一个实例
  2. print '当前字母 :', letter
  3. 当前字母 : P
  4. 当前字母 : y
  5. 当前字母 : t
  6. 当前字母 : h
  7. 当前字母 : o
  8. 当前字母 : n

2、列表当做循环

  1. fruits = ['banana', 'apple', 'mango']
  2. for fruit in fruits: # 第二个实例
  3. print '当前字母 :', fruit

3、数字当做循环

  1. for num in range(10,20): # 迭代 10 到 20 之间的数字
  2. for i in range(2,num): # 根据因子迭代
  3. if num%i == 0: # 确定第一个因子
  4. j=num/i # 计算第二个因子
  5. print '%d 等于 %d * %d' % (num,i,j)
  6. break # 跳出当前循环
  7. else: # 循环的 else 部分
  8. print num, '是一个质数'

三、_name_

参考来自:百度知道

_name_在当前文件中:_name_=_main_

_name_在别的文件中:_name_=def的名字

_name_是指示当前py文件调用方式的方法。如果它等于”_main_“就表示是直接执行,如果不是,则用来被别的文件调用,这个时候if就为False,那么它就不会执行最外层的代码了。

比如你有个Python文件里面

  1. def XXXX():
  2. #body
  3. print "asdf"

这样的话,就算是别的地方导入这个文件,要调用这个XXXX函数,也会执行print “asdf”,因为他是最外层代码,或者叫做全局代码。但是往往我们希望只有我在执行这个文件的时候才运行一些代码,不是的话(也就是被调用的话)那就不执行这些代码,所以一般改为

  1. def XXXX():
  2. #body
  3. if __name__="__main__":
  4. print "asdf"

.

.

四、防范报错

1、assert 断言

Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息。例如:

  1. py> x = 23
  2. py> assert x > 0, "x is not zero or negative"
  3. py> assert x%2 == 0, "x is not an even number"
  4. Traceback (most recent call last):
  5. File "", line 1, in
  6. AssertionError: x is not an even number

类似R中的stopifnot

参考博客:Python 中何时使用断言?

.

2、try…except…

  1. try:
  2. f = open('xxx')
  3. except:
  4. print 'fail to open'
  5. exit(-1)

如果try中open不出来,那么就except返回相应的内容“fail to open”

.

3、with…as…

那么with和as也是一种防止报错的防范方式,

当python执行这一句时,会调用enter函数,然后把该函数return的值传给as后指定的变量。

之后,python会执行下面do something的语句块。最后不论在该语句块出现了什么异常,都会在离开时执行exit

  1. ith open("x.txt") as f:
  2. data = f.read()
  3. with open("x.txt") as f1, open('xxx.txt') as f2:
  4. do something with f1,f2

那么try和with也可以合起:

  1. try:
  2. with open( "a.txt" ) as f :
  3. do something
  4. except xxxError:
  5. do something about exception

.

.

五、类定义

参考于:Python的hasattr() getattr() setattr() 函数使用方法详解

  1. class <类名>:
  2. <语句>

类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性

如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象

可以和以下内容合用:setattr/hasattr/getattr

  1. hasattr(object, name)

判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。

需要注意的是name要用括号括起来

  1. getattr(object, name[,default])

获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。

需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,

可以在后面添加一对括号。

  1. setattr(object, name, values)

给对象的属性赋值,若属性不存在,先创建再赋值。

python︱函数、for、_name_杂记的更多相关文章

  1. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  2. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  3. Python函数讲解

    Python函数

  4. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  5. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  6. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  7. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

  8. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  9. Python函数1

    Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...

  10. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

随机推荐

  1. [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...

  2. java之过滤器Filter (应用场景)

    filter在开发中的常见应用:     * 1.filter可以目标资源执行之前,进行权限检查,检查用户有无权限,如有权限则放行,如没有,则拒绝访问     * 2.filter可以放行之前,对re ...

  3. OpenStack和Hadoop的区别

    其实,OpenStack和Hadoop不是同一个层次的东西,无法比较,非要说出个区别,那就是:OpenStack是云计算管理平台,应该是属于系统级别的软件,它的主体思想是把资源进行分离,给不同的用户提 ...

  4. Timer类的schedule和scheduleAtFixedRate 简单应用

    Timer类可以用作定时任务,主要的方法有schedule和scheduleAtFixedRate. schedule(TimerTask task, Date time) 安排在指定的时间执行指定的 ...

  5. POJ 3621 Sightseeing Cows [最优比率环]

    感觉去年9月的自己好$naive$ http://www.cnblogs.com/candy99/p/5868948.html 现在不也是嘛 裸题,具体看学习笔记 二分答案之后判负环就行了 $dfs$ ...

  6. Asp.Net Core MailKit 完美附件(中文名、长文件名)

    最近在使用MailKit组件发送邮件,看了一些博客其实还是蛮简单的,但是发送附件的时候却产生了不小的问题,附件的中文名字是乱码的,或者附件的名字过长就会无效,附件的名字在QQ邮箱中会变成类似 tcmi ...

  7. 怎么理解np.random.seed()?

    在使用numpy时,难免会用到随机数生成器.我一直对np.random.seed(),随机数种子搞不懂.很多博客也就粗略的说,利用随机数种子,每次生成的随机数相同. 我有两个疑惑:1, 利用随机数种子 ...

  8. S5PV210时钟,看门狗定时器

    晶振:时钟源(操作主要有两个,倍频,分频) A8的时钟源: 时钟域,每个时钟域(不同的最高频率和最低频率)管理着不同的电路模块: 不同的时钟域对应不同电路模块表 时钟电路:懂得看时钟电路(时钟源选择开 ...

  9. 练手项目:利用pygame库编写射击游戏

    本项目使用pygame模块编写了射击游戏,目的在于训练自己的Python基本功.了解中小型程序框架以及学习代码重构等.游戏具有一定的可玩性,感兴趣的可以试一下. 项目说明:出自<Python编程 ...

  10. 每个前端开发者必会的 20 个 JavaScript 面试题

    JavaScript 未声明变量直接使用会抛出异常:var name is not defined,如果没有处理异常,代码就停止运行了.但是,使用typeof undeclared_variable并 ...