@XQF
2016-09-29T12:20:32.000000Z
字数 3254
阅读 1662
Python学习笔记
python
mooc
input
可以输入纯数字,float 或者int类型,但是raw_input
输入的时候只能是字符串。input
也接受表达式和字符串,1+2
会直接输出结果,当然要是想输入字符串就必须手动加引号(123)嗯,python的函数返回值是不需要显式定义的,应该是根据返回的值自动判断类型,于是在def
关键字前面是没有任何的语句的。
True,False首字母是大写,真是有点猝不及防
def addMe(x):
return x + x
def 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, '->', c
else:
h(a, c, b, n - 1)//把a的上面n-1(还剩一个)个盘子通过c转移到b上
print a, '->', c//a的最后一个盘子放到c
h(b, a, c, n - 1)//b上n-1个盘子(所有,一个都不剩)通过a全部放到c上
h('a', 'b', 'c', 4)
这个主要是用在变量名重复的时候,不过没什么意思呀,要是在函数中使用同名全局变量(使用后全局变量在函数也可以进行改变),回到主函数中改变的值仍有效
def f(x):
global a
print a
a=5
print a+x
a=3
f(8)
print a
3
13
5
文件写入的时候不会自动有换行,同时读出的时候也会把换行符读出来
f=open(r'hh.txt','r')
f.read()
f.read() # 这一句是没有作用的,因为经过上一句后文件指针已经到达文件尾部。
f.close();
数字和字符串之间是不能自由转换的,不能像java那样,但是可以是C++那样通过函数进行转换。str()函数
基本的网路数据获取,获取百度首页的内容并写进一个文件中,当然文件的分析主要是通过一些类或者正则表达式解决问题。
import urllib
r=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 a
a[1]=2
print(a)
b=['j4gijo4jgio','nreigu']
print b
还敢不敢再乱一点,抓狂
a=[1,4,5,6,2,4,5,6]
print a
a.pop()# 去掉末尾
print a
a.pop(0)#去掉开头
print a
a.append(10)# 在末尾加上10
print a
print 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 a
a=[x*3 for x in range(10)]
print a
a=[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 a
b = [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,3
print 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 e
keyss=['xqf','wly']#受不了了,这么多
ages=[12,12]
f= dict(zip(keyss,ages))
字典作为参数(可变长关键字参数)
def func(aa,*b,**c):
print aa
print b
print c
func('hello','jjj','jjj',a=2,b=2)