热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python基础语法以及在windows下如何导入模块

一.什么是python是一种使你在编程时能够保持自己的风格的程序设计语言,你不用费什么劲就可以实现想要的功能,并且编写的程序清晰易懂。一种解释型的、面向对象的、带有动态语义的高级程序设

一.  什么是python

是一种使你在编程时能够保持自己的风格的程序设计语言,你不用费什么劲就可以实现想要的功能,并且编写的程序清晰易懂。一种解释型的 、面向对象的、带有动态语义的高级程序设计语言。

二.  Python特性

1.      脚本语言

2.      高阶动态编程语言

解释性和编译性:运行不需要编译成二进制代码,可以直接运行源代码,但是需要解释器。

3.      可扩展性及可嵌入性:可以在其中嵌入C或者C++

4.      面向对象

5.      免费、开源

6.      可移植性

7.      丰富的库

三.  Python文件类型

1.      源代码:以py为扩展名,不需要编译

2.      字节代码

a)        Python源文件经编译后生成的扩展名为’pyc’的文件

b)        编译方法:import py_compile  py_compile.compile(“hello.py”)

3.      优化代码:经过优化后的代码扩展名为.pyo,python –O –m py_compile hello.py

SyntaxError: invalid syntax:无效语法

四.  python的赋值是以数据为主。

>>>a = 123

>>>b= 123

>>>id(a)

19964200

>>>id(b)

19964200

五.  python运算符和表达式

3**3:3求三的3次方

#!C:\Python27

a =int(raw_input("please input n1:"))

b =int(raw_input("please input n2:"))

print a+b

print a-b

print a*b

print a/b

六.  Python的数据类型

1.      数字:

>>>n = 1

>>>type(n)

>>>a = 1111111111111111111111111111111111111111

>>>type(a)

>>>a = 12e+7

>>>a

120000000.0

>>>a = 12e-7

>>>a

1.2e-06

>>>type(a)

>>>c = 13j

>>>c

13j

>>>type(c)

2.      字符串:

>>>a = "123"

>>>type(a)

>>>str = 'hello'

>>>type(str)

>>>str = """hello"""

>>>type(str)

>>>a = 'abcde'

>>>a[0]

'a'

>>> a[1]

>>>a[0]+a[1]

'ab'

>>>a[1:4]

'bcd'

>>>a[:4]

'abcd'

//步长为2

>>>a[::2]

'ace

>>>a[-1]

'e'

>>>a[1:-1]

'bcd'

>>>a[-2:-4:-1]

'dc'

3.      列表(序列)

>>>list.append(2)

>>>list[3]

2

>>> list[0] = 555

>>>list.remove(list[4])

>>> list[4]

>>>del(list[0])

>>>list

[2, 3, 2]

4.      元组:

a)        和列表十分相似,只不过元组和字符串一样是不可变的,即你不能修改元组

b)        元组通过圆括号中逗号分割的项目定义

c)        元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组值不改变。

>>> t =("wy","pengyulaopo",18)

>>>t[0]

'wy'

>>>t[0:2]

('wy', 'pengyulaopo')

 

>>> t =(1,)

>>>type(t)

5.      字典{}:

>>> ss = {'name':'wangying','age':18}

>>>ss['name']

'wangying'

>>>ss['age']

18

a)        创建字典

                                    i.             {}

                                  ii.             使用工厂方法dict()

                                 iii.             内建方法:fromkeys(),字典中的元素具有想通值,默认为none

1.        例:ddict={}.fromkeys((‘x’,’y’),-1)

b)        更新和删除

                                    i.             直接用键值访问更新;内建的update()方法可以将整个字典的内容拷贝到另一个字典中

>>> ss['tel']='15606135991'

                                  ii.             del dict1[‘a’] 删除

1.        dict1.pop(‘a):删除并且返回键为a的元素

2.        dict1.clear:删除字典所有元素

3.        del dict1:删除整个字典

序列的基本操作

1.      len():求序列长度

2.      +:连接两个序列

3.      *:重复序列元素

>>> ss*5

'wywywywywy'

4.      in:判断元素是否在序列中

5.      max():

6.      min():

7.      cmp(t1,t2):比较两个序列值是否相等

七.  流程控制

1.      分支结构

a)      逻辑值包含两个值:

True:表示非空值,所有非零数

False:表示0,None,空的量等

         #!C:\Python27

def fun():

                       return0

if fun():

                        print"OK"

else:

                print "NO"

 

#!C:\Python27

deffun():

    return 0

x= int(raw_input("please input a num:"))

ifx>=90:

    print "OK"

elifx>=80:

    print "aa"

else:

    print("bad")

2.      逻辑运算符

a)        and:

b)        or:

c)        not:

3.      for循环

a)        在python for循环遍历序列,如一个列表或一个字符。

b)        for循环语法:

for iterating_varin sequence statements(s)

注:如果一个序列包含一个表达式列表,它是第一个执行。    

c)        迭代序列指数

                                    i.             遍历每一个项目的另一种方法是由序列本身的偏移指数(索引)

d)        range

                                    i.             循环结构是用于迭代多个项的for语句,迭代形式可以循环序列的所有成员

                                  ii.             range(I,j,[步进值])

如果创建的对象为整数,则可以使用,初始、结束和步进

4.      遍历

a)        序列取值

#! C:\Python27

 

for x in "hello":

    print x

s = "hello"

for x in range(len(s)):

    print s[x]

b)        字典遍历

#! C:\Python27

 

s = {1:11,2:22,3:33}

print s.items()

 

s = {1:11,2:22,3:33}

for k,v in s.items():

print k

    print v

5.      循环控制

#! C:\Python27

 

s = {1:11,2:22,3:33}

 

for k,v in s.items():

   print k

   print v

else:

    print "ending"

else会在执行完for之后再执行。

#! C:\Python27

import time

 

s = {1:11,2:22,3:33,4:44,5:55,6:66}

 

for k,v in s.items():

   print k

   print v

   time.sleep(1)

   if k==2:

       pass //占位符

   if k==5:

       exit() //跳出整个执行

   if k==5:

       continue //跳到下一个循环

   print "nihao"

else:

    print "ending"

按住ctrl+c就可以强制结束,但是没有执行完

6.      while

while True:

   print "hello"

   x = raw_input("input:")

   if x=="q":    //基本每个判断后面都有冒号

        break

x=""

while x!="q":

   print "hello"

   x = raw_input("input:")

   if not x:

       break

else:

    print "ending..."

八.  函数

a)        函数就是完成特定功能的一个语句组,可以作为一个单位使用

b)        在不同地方可以多次执行

c)        自定义函数

d)        预定义的python函数

定义:def 函数名():函数体

1.      形式参数和实际参数

a)        在定义函数时函数名后面括号中的变量成为”形参”。

b)        调用函数时传入的参数叫实参。

#! C:\Python27

#coding:gbk

 

def fun():

    if True:

        print "你好"

def fun(a="我爱王莹")://提前赋值就是默认参数

    if True:

        print a

        print "你好"

2.      全局变量和局部变量

a = 100

 

def fun():

   global b

   b = 200

   print a

fun()

print b

内部成员变量只有声明为global才是全局,且必须执行fun函数之后b才能被实例化。

3.      函数返回值

在函数中只要遇到return就会终止这个函数。

4.      冗余参数处理

a)        多类型传值,比如有元组和字典

t = ('name','yannis')

def f(x,y):

   print "%s : %s" % (x,y)

f(*t)

本来是必须传入两个参数,但是在元组前面加一个*号就可以默认只传入一个元组。print后面的两个s是表示占位,表示还不知道什么值,先占位为String

def s(name="name",age=0):

   print "name : %s" % name

   print "age : %s" % age

s("wangying",20)

 

def s(name="name",age=0):

   print "name : %s" % name

   print "age : %s" % age

m = ('wy',18)

s(*m)

字典:

def s(name="name",age=0):

   print "name : %s" % name

   print "age : %s" % age

d = {'age':20,'name':'wangying'}

s(**d)

b)        处理多余实参

元组

def f(x,*args):

   print x

   print args

f(1,3,6,7)

字典:

def f(x,*args,**kargs):

   print x

   print args

   print kargs

f(1,2,3,4,5,6,7,y=1,name='wangyingwoaini')

lambda

1.      匿名函数:lambda函数是一种快速定义单行的最小函数,是从Lisp借用来的,可以用在任何需要函数的地方。

2.      使用lambda的好处

a)        使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更精简

b)        对一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑名字问题

c)        使用lambda在某些时候让代码更容易理解。

>>> l = range(1,6)

>>> l

[1, 2, 3, 4, 5]

>>> reduce(lambda x,y:x*y,l)//reduce实现一个函数,两两想乘,1*2*3*4*5

 

SWITCH

1.      python可以通过字典实现switch的功能。

2.      方法分两步

a)        定义一个字典

b)        其次,调用字典的get()获取相应的表达式

#coding:gbk

 

from __future__ import division

 

def jia(x,y):

   return x+y

def jian(x,y):

   return x-y

def cheng(x,y):

   return x*y

def chu(x,y):

   return x/y

 

operator ={"+":jia,"-":jian,"*":cheng,"/":chu}

 

def f(x,o,y):

   print operator.get(o)(x,y)

不需要多次通过if 和 elif来多次判断符号了。

常用内置对象

                  常用函数:

1.      abs():绝对值

2.      max():最大值

3.      min():最小值

4.      len():长度

5.      divmod():求两个数的商

6.      pow():求次方

7.      round():浮点数

8.      callable(f):测试f函数有没有被定义

9.      type():获取对象的类型

10.  isinstance(l,list):判断l是否为list

11.  cmp("hello","Hello"):比较两个字符串大小

内置函数

         String函数

1.       str.capitalize()

>>> s.capitalize() //把字符串s的首字母大写

2.      str.replace()

>>>s.replace("wangying","yingying")

>>> ss.replace("1","x",2)//2表示从头到尾替换几个1。

'x2x321123'

 

3.      str.split()  //str表示一个类别。

>>>ip = "196.168.0.1"

>>>l = ip.split('.')

>>>l

['196', '168', '0', '1']

>>>l = ip.split('.',2)//参数2表示切割几次

>>>l

['196', '168', '0.1']

可以导入string模块,其中也有string的各种处理方法

         序列处理函数

1.      len()

2.      max()

3.      min()

4.      filter()

>>>def f(x):

if x>5:

           return True

>>>l = range(10)

>>>filter(f,l)

[6, 7, 8, 9]

5.      zip()

>>>name=["yannis","wangying"]

>>>age = [23,20]

>>>tel = ["130","156"]

>>>zip(name,age,tel)

[('yannis', 23, '130'), ('wangying', 20, '156')]

>>>test = [1]  //zip组合以最小元组为基数

>>>zip(name,age,tel,test)

[('yannis', 23, '130', 1)]

 

6.      map()

>>>map(None,name,age,tel)

[('yannis', 23, '130'), ('wangying', 20, '156')]

>>>map(None,name,age,tel,test)

[('yannis', 23, '130', 1), ('wangying', 20, '156', None)]

map在某一个列表值不够的时候会以none代替。

>>>a = [1,2,3]

>>>b = [4,5,6]

>>>def f(x,y)

SyntaxError:invalid syntax

>>>def f(x,y):

return x*y

 

>>>map(None,a,b)

[(1, 4),(2, 5), (3, 6)]

>>>map(f,a,b)

[4, 10,18]

>>> 

7.      reduce()

>>>def f(x,y):

return x+y

 

>>>l = range(100)

>>>reduce(f,l)

4950

>>>l = range(101)

>>>reduce(f,1)

 

Traceback(most recent call last):

  File "", line 1,in

    reduce(f,1)

TypeError:reduce() arg 2 must support iteration

>>>reduce(f,l)

5050

>>> 

>>>reduce(lambda x,y:x+y,l)

5050

 

>>>filter(lambda x:x%2 == 0 ,l)

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]

 

九.  模块

1.      模块是python组织代码的基本方式

2.      python的脚本都是用扩展名为py的文本文件保存的,一个脚本可以单独运行,也可以导入另一个脚本中运行。当脚本被导入运行时,我们将其成为模块。

导入的模块如果要使用它的方法的话,需要这个模块名.这个方法。

print __name__会根据调用对象不同显示不同的值,如果本身的话就是main,如果器其他对象就显示被调用对象的方法名。

 

包:Python的模块可以按目录组织为包;创建一个包的步骤是:

a)      建立一个名字为包名字的文件夹

b)      在该文件夹下创建一个__init__.py文件

c)      根据需要在该文件夹下存放脚本文件、已编译扩展及子包

d)      import pack.m1, pack.m2,  pack.m3

具体步骤如下:

1.      在你安装Python目录C:\Python27\Lib\site-packages下创建一个文件夹MyModule(随意起名)

2.      __init__.py创建这个文件,不需要有内容。

3.      之后你的模块就可以放进去了,例如把scope.py放入

4.      >>> import MyModule.scope用这句话引入scope这个模块

总结:

1.      模块是一个可以导入的Python脚本文件

2.      包是一堆按目录组织的模块个子包,目录下的__init__.py存放了包的信息

3.      可以用import,import as ,from import等语句导入


推荐阅读
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文探讨了如何在 Java 中将多参数方法通过 Lambda 表达式传递给一个接受 List 的 Function。具体分析了 `OrderUtil` 类中的 `runInBatches` 方法及其使用场景。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 本文详细介绍了如何在 Django 项目中使用 Admin 管理后台,包括创建超级用户、启动项目、管理数据模型和修改用户密码等步骤。 ... [详细]
  • 解决问题:1、批量读取点云las数据2、点云数据读与写出3、csf滤波分类参考:https:github.comsuyunzzzCSF论文题目ÿ ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
author-avatar
lilin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有