python基础篇总结

(1)初学python    
name=raw_input()  输入变量值(返回值是字符串)
name=raw_input("please enter your name")
print"hello",name
raw_input和print是在命令行下面最进本的输入输出。 但是,用户也可以通过其他更高级的图形界面完成输入和输出,比如,在网页上的一个文本框输入自己的名字,点击“确定”后在网页上看到输出信息。

以#开头的是注释,可以任意写,机器忽略。
字符串直接索引法。"hello"[1]
函数list("hello")=['h','e','l','l','o']  列出表元素
(2)语法和函数
 由于python源代码也是一个文本文件,所以当你的源代码中包含中文时候时,在保存源代码时需要务必指定保存为UTF-8编码
# -*- coding: utf-8 -*-
格式化字符串:
 %d 整形变量   %f浮点型变量  %s字符串  %x十六进制
int()发现一个字符串并不是合法的数字时就报错。
len()函数可以获得list元素的个数。索引访问每一个位置的元素。除了计算索引位置元素外,还可以用-1座索引,直接获取最后一个元素。
append()函数可以附加一个参数。一般在列表中添加元素,eg:names.append("元素")
insert()函数一般也是插入某个元素到列表中。eg:names.insert(位置,"内容")
pop()函数删除列表中的某个元素,eg:names.pop(i), i为索引位置,删除指定位置的元素内容。
列表元素直接赋值,eg: names[1]="2"
列表中可以包含列表。
eg: str=["a","23","true"]
         names.append(str)            (ok)
tuple,定义一个不变元组,指向不变。(存储单元不变)

list与tuple区别就是[]和()的区别,list可变,tuple指向不变。

字典dic方式存储数据。key-value定位元素值。
n={"aa":22,"bb":33,"cc":44}
n.get()通过key-value定位元素值。
n.pop()通过key-value删除元素。

(3)函数定义和参数特征

在python中,定义一个函数要使用def语句,依次写出函数名,括号,括号中的参数和冒号:,然后在缩进模块中编写函数体,函数的返回值用return语句返回。如果没有return语句,返回值就是none
eg:  def nop():
              pass         
 如果没pass,代码运行会有语法错误。 pass作为占用符,比如没有想好代码。

自定义函数参数可以有多个,多个函数可以定义多个默认值。
默认参数设置,注意事项:
1,必须参数在前,默认参数在后,否则python解释器会报错。
2,设置参数事,习惯把默认参数变化大的放在前面,变化小的参数放在后面。默认参数降低函数调用难度。可以不按照顺序提供参数,但是需要把参数名字写上。没有提供参数的使用默认值。
 
可变参数允许你传入0个或者任意个参数,这些可变参数在函数调用时自动组装为一个tuple

递归函数优点是逻辑清晰。理论上,所有递归函数都可以写成循环的方式。但是循环不如递归函数逻辑清晰。
使用递归函数需要防止栈溢出,在计算机中,函数调用时通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加一个栈帧,每当函数返回就会减一层栈帧,由于栈的大小不是无限的,所以,递归调用过多会导致栈溢出。
解决栈溢出方法是用尾递归优化。在函数返回时,调用自身本身并且return语句不包含表达式,这样编译器或者解释器就可以把尾递归做优化。使递归本身无论调用多少次,都只是占用一个栈帧,不会出现栈溢出现象
eg:  def fact(n):
              return fact_inter(n,1)
          def  fact_inter(num.product):
               if num==1:
                        print product
               return fact_iter(num-1,num*product) 
当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。编译器可以做到这点,因为递归调用是当前活跃期内最后一条待执行的语句,于是当这个调用返回时栈帧中并没有其他事情可做,因此也就没有保存栈帧的必要了。通过覆盖当前的栈帧而不是在其之上重新添加一个,这样所使用的栈空间就大大缩减了,这使得实际的运行效率会变得更高。

高级特性:一行代码能完成的事绝不用5行代码时间。
eg:L[0:3]切片索引,如果第一个索引是0,可以省略。
eg:     L=[]
             for x in range(10):
                 L.append(x*x)
              print L
x会自动指向下一个元素,x自动+1但是指向的是下一个元素。
生成器generator函数和普通函数执行流程不一样,函数是顺序执行,遇到return或者执行到最后一行函数语句就返回,而变成generator函数在此调用时从上次返回的yield语句处继续执行。
函数本身可以复制给变量,及变量指向函数。
eg:   f=abs    
函数名也是变量,也就是说函数名变了,函数也就不指向原来函数了。
传入函数:既然变量可以指向函数,函数的参数能接受变量,那么函数可以接受另一个函数作为参数,这种函数称之为高阶函数

map/reduce()map函数接收两个参数,一个是函数,一个是序列。map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
內建函数filter()用于过滤序列。和map()类似,filter()也接收一个函数和一个列序列,和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

高阶函数除了可以接受函数作为参数作为返回值,还可以把函数作为结果返回值。

內建的callable函数可以用来判断函数是否可调用。函数callable在python3中不在可用,需要使用表达方式hasattr(func,_call_)代替,有关hasattr的更多信息

指定字符编码
python指定字符编码的方式有很多种,而编码格式是要写在解释器的下面,常用的有三种模式:
第一种
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
第二种
#!/usr/bin/env python
# -*- coding:utf-8 -*-
第三种
#!/usr/bin/env python
# coding:utf-8
代码注释
单行注释
单行注释只需要在代码前面加上#号
# 注释内容
多行注释用三个单引号后者三个双引号括起来
变量
变量的命名规格:
1.变量名只能包含数字,字母,下划线
2.不能以数字开头
3.变量名不能使用python内部的关键字
python内部已经占用的关键字
【and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from】
定义变量
name = "ypf"
print name
本的数据类型
字符串
定义字符串类型是需要用单引号或者双引号包起来的
name = “ypf”
print(type(name))
<type 'str'>
或者
name = 'ypf'
print(type(name))
<type 'str'>
数字(int)
证书类型定义的时候变量名后面直接可以跟数字,不要用双引号包起来
age = 20
print(type(age))
<type 'int'>
布尔值()
布尔值就只有True(真),flash(假)
流程控制
if语句
if语句是用来检测一个条件:如果条件为真(true),我们运行一个语句块(if块),否则(else),我们执行另一个语句块(称为else块)。else子语句是可选的。
while循环
while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。执行流程图如下:
执行流程图如下:
实例:
定义一个变量count,默认值为1,然后进去while循环,让其输出1-10,如果大于10则退出。
count = 1
print "start ..."
while  count <1:
    print "the count is :"
    count += 1
print "end ..."
break
跳出当前位置循环体,下面代码不在执行,继续执行循环后面的代码
实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
# _*_ coding:utf-8 _*_

count = 1

print"Start...."

while count < 11:
if count == 5: #如果count等于5,那么我就退出当前循环体
break
print"The count is:",count
count += 1

print"End...."
continue 
跳出本次循环,继续下一次循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python
# _*_ coding:utf-8 _*_

count = 1

print"Start...."

while count < 11:
if count == 5: #如果count等于5,那么我就让其+1,然后不执行下面的代码,继续下一次循环
count += 1
continue
print"The count is:",count
count += 1

print"End...."
条件判断
条件判断适用于if,while等
等于:if 1 == 1
不等于: if != 2
小于  if 1 < 1
大于  if 1> 1
并且  if 1 ==1 and 1>0:
或者  if 2 > 1 or 2 = 2
永远为真  if True:
永远为假  if  Flase
交互式输入
python的交互式输入使用的是raw_input ()和 input() 函数来函数实现的,注意在python2.7.x版本时可以使用raw_input()
和input()函数,但是在python3.5.x 版本的时候就没有raw_input()函数了,只能够用input()
例题:输入名字打印出来
input()函数只能输入数字
python time sleep() 函数推迟调用线程的运行,可以通过参数secs即秒数,表示进程挂起的时间
以下实例展示了 sleep() 函数的使用方法:

#!/usr/bin/pythonimport time

print"Start : %s"% time.ctime()
time.sleep(5)print"End : %s"% time.ctime()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值