python 脚本语言1

新建文件:1.py

在文件头写入#!/usr/bin/python   这样就可以直接输入文件名就可以执行python程序

否则的话就要指定python XXX 来指定用python 来执行程序

新建文件按;2.py

import py_compile
py_compile.compile('1.py')  因为两个文件在同一目录下,可以直接编译


设置文件夹权限 chmod -R 755 python/

执行python 2.py

目录下多了一个1.pyc 编译好的python程序文件


或者用命令 python -O -m py_compile 1.py         这儿的O要大写

生成的文件是1.pyo ,这个是经过优化的二进制文件


变量赋值,不用指定类型:SyntaxError :泛指语法错误

a=5

NameError : 变量,函数,类 未被定义

id(a) 查看的是在内存中的地址编码

b=5

这个时候a,b 的内存地址是一样的。


3==3.0 成立 先比较的是数值大小,而不是字符串比较


与或非  and or not关键字


a=raw_input()   等待   表示从输入的内容导入a变量 得到的是一个字符串!!!

强制类型转换a=(int)raw_input() 


提示输入:a=(int)raw_input("please input num1:")

 

type(a) 查看a 的数据类型


num2=123L  把123 强制存储为长整形

f1=12.0 表示存储成浮点值

复数类型 用j表示虚部  k=3,14j

字符串 定义用‘xxxx’    “xxx”   ”“” xxx “”“” 三重引号都会记录下所有在三重引号内的操作。包括换行,tab,都会被记录

三重引号还用做程序注释

转意符号\"  \' 

\n   换行     

特别注意:下标从0开始;str[0:3]不包含下标为3的字符。

字符串 切片  a[0:4] 表示从第一位取到第四位  !!!!!

a[:4] 表示3之前的都要被取到 !!!!!

a[::2]表示隔两个间隔取值!!!!

a[-1] 表示取出倒数第一个的值!!!!

 不管正负但是都是从左往右取值!!!!

a[::-1]要从右往左一个一个取值!!!!


len(a) 这个求长度

*n 重复n次

‘a’ in a 判断a数组中有么有‘a’

cmp (a,b)比较两个字符串比较大小 ,字母比数字大


元组:t=(“milo”,30,"male")

同样可以索引和切片,元组值不可变

但是可以全部改变 t=(“milo”,31,"male") 不让单个改变

即使 只有一个元素的元组,一定要跟上一个逗号, t=(3,)!!!!! 

分别赋值 name,age,gender=t



序列:列表是可变的

list=['milo',30,'male']

list[0]='luis'   是被允许的空间

改变后的存储空间是不变的

IndexError  索引错误

list.append('xxxx') 添加

list.remove('xxxx')   这里删除发现内容的第一个     或者 del (list[1])  


zip(t1,t2) 表示从两个列表中依次取值,然后组成一个新的列表


字典类型:

dic=['name':'luis','age':25,'gender','male']

dic['name'] 

遍历字典 for k in dic

print dic[k]

字典增加很方便  (无序的) dic['tel']='123455'\

删除 del dic['tel']

弹出 dic.pop('age')    弹出后字典里就没有这个值了

dic.clear 清空字典

del(dic)  删除字典

dic.get(k,'error')   取字典中的值,如果不存在的话返回error


if expression:    注意冒号

    action    注意四个空格表示缩进   IndentationError  缩进错误

elif:

    nnnn

else:

    llll


for iterating_var in sequence:   序列可以是:列表,字符串,元组,或者一些表达式,

    statements(s)


range(100) 生成0-99 的序列!!!!!

range(初始值,终值,步长)    终值要比预想值的边界多一

xrange(100)  返回的是迭代的对象,不占内存空间


函数:

def add(a,b):

    c=a+b

    print c

# 表示注释


写在程序前头#coding:utf8   程序里就可以使用中文了


def machine(x,y='444') : 这里定义的y 就是一个默认值,调用的时候y可以不传值了

调用传值的时候,传参数总是对应位置,对应变量赋值,

原则:定义函数参数时候,右边的尽量设成默认参数,左边的设置成非默认参数

函数内部的局部变量不会覆盖全局变量的内容(会隐藏全局变量内容??),局部变量只能在函数内部使用

在函数体里写出global y 可以强制声明为全局变量,这样就会覆盖全局变量的内容


求和函数sum([1,2,3,4,5])   内置函数把序列的内容求和

print "%s,%s" % x,y  把字符串传给对位置的格式符号


def f(x,y):

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


如果t=('name','luis')

可以这样调用了f(*t) 把参数对应上了

*元组   类似于把元组里的元素一个一个拆开传值导入


注意,如果字典对应的键正好是函数的形参(同名),那么就可以直接用f(**d)来传对应的参数,

字典是无序的,如果不对应,就找不到对应的传值!!!!!!


 对于多传参数,或者参数不确定,参数冗余

def f(x,*args):

    print x

    print args

多余的参数回传入args 中组成一个新的元组


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

    print x

    print args

    print kwargs

多余的参数回传入args 中组成一个新的元组

f(x=3,y=1)

y=3 被存入kwargs字典中了


参数变量名一定不能重复,调试多用print,真是程序尽量多用return



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值