python入门笔记

这是我第一次写博客,没想到我的第一次就给了python,也是因为最近深度学习的兴起, 让python语言好好的火了一把。由于之前在学习tensorflow,特别是对于官方给出的数据处理之类的代码,比如:input_data.py 看的不是太懂,虽说是入门级的代码,但毕竟是谷歌那些有丰富经验的工程师写的,对于没有python经验的我来说,还是蛮痛苦的。  这篇笔记主要是基于udacity的《编程基础:python》这个视频,可能其中会穿插一些tensorflow里的代码,因为之前有不理解的地方,现在多多少少理解了一些。这个笔记主要是写给自己看的,为了加深印象,所以不喜勿喷 !(如果有写的不对的地方,还请各位指正)


----------------------------------------------------------------分割线---------------------------------------------------------------------

1. 安装python 2.7

这个视频是基于python 2.7来讲的,所以最好下载一个python 2.7。安装也很简单,网上资料也很多,当然你也可以按照这个链接里的步骤去安装:https://classroom.udacity.com/courses/ud036/lessons/990110642/concepts/36691786570923 


2.如何使用第三方模块?

python 如此强大在于它有着丰富的模块或者说是库函数,你可以做很多你想做的事,比如web开发,数据挖掘,爬虫等

就以课程中的例子, 该例子是通过运行程序向手机发送消息:

import twilio
# from twilio.rest import Client    代表twilio文件里有一个rest文件,rest文件里有一个Client类
# from twilio import rest
 
# 一般插入某个模块直接import对应模块就可以了,当然也可使用关键字from,使用from后,你可以认为是插入了模块的某个特定的功能和属性,一个很明显的不同是:如果只是import twilio,要想用Client类则需要twilio.rest.Client,而采用from twilio import rest,则只要rest.Client。这是它们最明显的不同。
# Your Account SID from twilio.com/console
account_sid = "ACf7b5b692f1563b4761f0f8cccec16bee"
# Your Auth Token from twilio.com/console
auth_token  = "853b3149ada33ca55780abecf9c9f43f"

client = twilio.rest.Client(account_sid, auth_token)
# client = rest.Client(account_sid, auth_token)
message = client.messages.create(
    to="+86xxxxxxxxxx", 
    from_="(331)214-3327",
    body="Hello from Python!")

print(message.sid)

tips(关于使用import or from...import):  在构建大项目的时候,尽量用import modual ,这样会方便程序员知道该函数引用自哪个模块。 


3. 类的定义和使用

class DataSet(object):

  def __init__(self, images, labels, fake_data=False, one_hot=False,
               dtype=tf.float32):
    """Construct a DataSet."""
    self._images = images
    self._labels = labels
    self._epochs_completed = 0
    self._index_in_epoch = 0
以上是tensorflow数据处理里的一段代码,最需注意的是 __init__(self, ...),对于def __init__(self, ...) 里的第一个参数永远都是self ,指代创建的实例本身。 有了该初始化操作,创建实例时必须传入参数。一旦创建实例,该初始化函数就会被调用,之前看见def 还以为是需要自己调用的函数。


补充:

 在一般的python文件中语句 if _name_== '_main_' 的作用:

 参考例子里的代码:

代码1:

# one.py
def func():
    print("func() in one.py") 
print("top-level in one.py")
if __name__ == "__main__":    # 对于_name_和_main_这两个特殊变量,它们是内置的,当所执行的程序并不是从外部import的情况下,name变量的值被置成_main_, 也就触发了恒等这个条件
    print("one.py is being run directly")                   
else:
    print("one.py is being imported into another module")

command line:

python one.py

输出是:

top-level in one.py
one.py is being run directly

代码2:

# two.py
import one          # 与上面代码不同的是这里将one.py这个文件插入到当前文件中,你可以想像该句的作用是将one文件里的 函数定义和类定义复制过来,只不过是隐藏了而已。所以先执行的是one.py文件里的语句。并且此时由于one文件是被imported的, 所以if条件是不满足的,执行else语句。
print("top-level in two.py") 
one.func()
if __name__ == "__main__": 
    print("two.py is being run directly")
else: 
    print("two.py is being imported into another module")

command line:

python two.py

输出是:

top-level in one.py
one.py is being imported into another module
top-level in two.py
func() in one.py
two.py is being run directly

作用的话:我们经常在写代码时除了调动第三方模块,还需要import其他的文件,可能我们只是要调用其中的函数或者说代码重用,但又不想执行该文件。这个功能就达到了这个目的。

tensorflow的文件中的有用到以下代码:

    if __name__=='__main__':
    tf.app.run()
其他和上面都是一样的, 主要是tf.app.run()语句,看其源码的话,就会知道它的作用,这里先占个坑,到时候需要了解再去看。

tips:这门课程主要侧重在类的一些基本概念的介绍,而且通过几个好玩的小项目来加深这种概念的理解,所以感觉这门课程更适合完全没有编程基础的童鞋儿,有基础的直接可以看看[2]或者是learning the python in hard way(虽然我并没有看过)。

reference:
        [1] :  https://cn.udacity.com/course/programming-foundations-with-python--ud036    
        [2] :   廖雪峰python教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值