@XQF
2016-09-29T04:20:32.000000Z
字数 3254
阅读 1774
Python学习笔记 python mooc
input可以输入纯数字,float 或者int类型,但是raw_input输入的时候只能是字符串。input也接受表达式和字符串,1+2会直接输出结果,当然要是想输入字符串就必须手动加引号(123)嗯,python的函数返回值是不需要显式定义的,应该是根据返回的值自动判断类型,于是在def关键字前面是没有任何的语句的。
True,False首字母是大写,真是有点猝不及防
def addMe(x):return x + xdef self(f, x):print f(x)self(addMe, 5) # 函数名
不得了呀
r=lambda x:x+x # 这样就定义了print r(5)
之前一直没有理解,这么简单的递归也是完成了夙愿
def h(a, b, c, n):if n == 1:print a, '->', celse:h(a, c, b, n - 1)//把a的上面n-1(还剩一个)个盘子通过c转移到b上print a, '->', c//a的最后一个盘子放到ch(b, a, c, n - 1)//b上n-1个盘子(所有,一个都不剩)通过a全部放到c上h('a', 'b', 'c', 4)
这个主要是用在变量名重复的时候,不过没什么意思呀,要是在函数中使用同名全局变量(使用后全局变量在函数也可以进行改变),回到主函数中改变的值仍有效
def f(x):global aprint aa=5print a+xa=3f(8)print a
3
13
5
文件写入的时候不会自动有换行,同时读出的时候也会把换行符读出来
f=open(r'hh.txt','r')
f.read()
f.read() # 这一句是没有作用的,因为经过上一句后文件指针已经到达文件尾部。
f.close();
数字和字符串之间是不能自由转换的,不能像java那样,但是可以是C++那样通过函数进行转换。str()函数
基本的网路数据获取,获取百度首页的内容并写进一个文件中,当然文件的分析主要是通过一些类或者正则表达式解决问题。
import urllibr=urllib.urlopen('http://www.baidu.com/')html=r.read()f=open(r'D:\TestPython\testBaidu.html','w')f.write(html)f.close()
列表的切片:印象深刻的是[::]初次相见是佳慧的代码,原来是这样的里面的数字应该就是从头开始的步长,而要是数字为负数则是输出的时候逆序。
# -*-coding:utf-8-*-week = ['Monday', 'Thuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']print week[1], week[-2], '\n', week[1:4], '\n', week[:6], '\n', week[::-1], '\n'print '------------------------------------------------------'print week[::1]print week[::2]print week[::-2]
输出:
Thuesday Saturday
['Thuesday', 'Wednesday', 'Thursday']
['Monday', 'Thuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
['Sunday', 'Saturday', 'Friday', 'Thursday', 'Wednesday', 'Thuesday', 'Monday']['Monday', 'Thuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',
'Sunday'] ['Monday', 'Wednesday', 'Friday', 'Sunday'] ['Sunday',
'Friday', 'Wednesday', 'Monday']
一个数据重复N遍
a='334'
print a*3
字符串是不是标题格式居然都有函数,简直不能相信。
string ="what dou think of this saying\"No pains ,No gain\""string1 ='what dou think of this saying\"No pains ,No gain\"'
双引号里面包含双引号还是要处理一下,单引号里面包含双引号就不用了。
经过探索,发现只要里面的引号和外面的引号相同就必须处理,不同就不用处理。
num='0123416'a1=num.index('1',0,len(num)) # 从左边开始找第一个b1=num.rindex('1',0,len(num)) # 从右边开始找第一个print a1,' ',b1
单个字符判断函数:
原来所谓的标题格式就是所有单词的首字母都要大写,原来如此。string.title()将一个字符串转成标题格式。
对一个列表里面的元素可以任意赋值
a=list('hello')print aa[1]=2print(a)b=['j4gijo4jgio','nreigu']print b
还敢不敢再乱一点,抓狂
a=[1,4,5,6,2,4,5,6]print aa.pop()# 去掉末尾print aa.pop(0)#去掉开头print aa.append(10)# 在末尾加上10print aprint sum(a)
逆序输出:
a=[1,4,5,6,2,4,5,6]a.sort(reverse=True)print a
列表解析:
一般是在列表内容需要改变的时候使用,同时经常和for以及可迭代的序列一起使用。另外还可以加条件
a=[x for x in range(10)]print aa=[x*3 for x in range(10)]print aa=[x for x in range(10) if x%2==0]print a
切片,。,len,逗号创建元祖,元祖不可变
a=(1,3,4,5)print a[1:]b=2,print b
sort函数使用的差异,后者只是新建一个副本进行排序,而原本的列表不变
a = [2, 2, 4, 6, 7, 84, 2, 4, 5, 6, 7]a.sort()print ab = [2, 2, 4, 6, 7, 84, 2, 4, 5, 6, 7]print(sorted(b))
作为形式参数,原来可变参数是由元组来实现的
def func(a,*b):print a #位置参数print b #一起传递func(1,34,5,6,6,7,8)
def func():return 1,2,3print func()
返回值为元组的函数
生成字典的几种方式
a={'XQF':12,'WLY':21}print a['XQF']b={('xqf',12),('wly',11)}c=dict(b)print c['xqf']d=dict(xqf=12,wly=11)print d['xqf']e={}.fromkeys(('xqf','wly'),3000)# 设置默认值print ekeyss=['xqf','wly']#受不了了,这么多ages=[12,12]f= dict(zip(keyss,ages))
字典作为参数(可变长关键字参数)
def func(aa,*b,**c):print aaprint bprint cfunc('hello','jjj','jjj',a=2,b=2)