Python基础
也是自己之前学习的笔记。
读文件
file_obj2=open('hello.txt','w') conta='my name is Bb' file_obj2.write(conta) v=file_obj2.readlines() print v
输出不唯一数1 (这是一个国外Python练习网站上的题目 我其他博文有介绍 )
def checkio(data): from collections import Counter nonunique = Counter(data) - Counter(set(data)) return [x for x in data if x in nonunique] print checkio([1,31,5,13,13,1,1]) print counter(set([1,31,5,13,13,1,1]))
输出不唯一数2
#Your optional code here #You can import some modules or create additional functions def checkio(data): return [x for x in data if data.count(x) > 1] #Some hints #You can use list.count(element) method for counting. #Create new list with non-unique elements #or remove elements from original list (but it's bad practice for many real cases) #Loop over original list #These "asserts" using only for self-checking and not necessary for auto-testing if __name__ == "__main__": assert isinstance(checkio([1]), list), "The result must be a list" assert checkio([1, 2, 3, 1, 3]) == [1, 3, 1, 3], "1st example" assert checkio([1, 2, 3, 4, 5]) == [], "2nd example" assert checkio([5, 5, 5, 5, 5]) == [5, 5, 5, 5, 5], "3rd example" assert checkio([10, 9, 10, 10, 9, 8]) == [10, 9, 10, 10, 9], "4th example"
#python while 循环语句
i=1; s=0; while i<=100: print s,i s=s+i i=i+1 print 'exit'
#第八课 python自定义函数预定义 1.预定值放在前面 2. 后面赋值可以把先前预定的值覆盖#
def test_e(n1,n2=15): print n1 print n2 return n1+n2 test = test_e(2) print test
#python函数实参赋值顺序#
def test_e(val1,val2,val3): print val1 print val2 print val3 return val1+val2+val3 test_e(5,23,55)
#python赋值 进行一一对应的赋值 以防出现错误#
#python if语句#
#注意使用 raw_input()的时候 把字符强制转化成 整形#
count =int(raw_input('input your number:')) print count if count>=80: print 'a' elif count>=70: print'b' else : print 'nono'
#字符区域代码#
sex=raw_input('put your sex') if sex=='Male': print 'right' else: print 'no'
#python if分支语句表达式构造 非0 即为真#
#关系表达式 > < = 逻辑表达式 and or not
#网络刷博客浏览量#
import os
import webbrowser as web import time i=0 while i<=10: web.open('http://blog.sina.com.cn/s/blog_9a0d1f710101vm5k.html?tj=1') time.sleep(0.8) os.system('taskkill /F /IM chrome.exe') print '%d times already run' % i i=i+1
#循环体for基础#
list1=[2,65,'g',5656] #list 数据类型 i=0; for lists in list1: print format(i,'2d'),lists i=i+1
#string 数据类型
j=0; string ='hello world' list2=list(string) # for str in list2: #string 直接用数据也可以 print format(j,'2d'),str; j=j+1; k=0; for k in range(1,101,2): #range 函数 范围在 start 到 end-1 最后一位为每个数字间隔数 print k;
s1='hello world'
#for循环 循环体遍历文件和元组#
tup = (1,2,3,4,5) #tup 元组 for tups in tup: print tups # file.readlines 获取文件列表 file.readline 获取文件字符串第一行 #记住 open 的用法 str =open('python16.py','r').readline() print len(str) for c in open('python16.py','r').readlines(): print c; open('temp.txt','a++').write(r) # 在原目录下面增加一个txt文件 在文件里面写入打开的文件内容
#python 字符串基础
#转移字符串 print r'hello\nworld' #r关闭转义字符串的作用 print u'unicode' #unicode 字符串 #格式化字符串 print 'your age is %d'%(28)
# open('c:\\temp\\temp.txt','a+') 用一个‘、’可能被认为是转义字符
#字符串基本操作
s1='www.hxend' s2='.com' print s1,s2 #这样输出的话 中间会存在一个空格 print s1+s2 #用‘+’连接两个字符串 #字符串的重复 * s='abcdefg' print s*5
#访问字符串的某个元素 index索引 ch = s[3] print ch #python 切片 slice s[i:j] sub =s[3:5] #从 start 到 end-1 print sub print s[:5] print s[3:] print s[-4:-1] #如果发生错误 就会出现 空格表示 # s[i:j:k] print s[-1:-4:-1] #倒序输出 依次减一 s2='www.hxend.com' print s2[9:4:-1] print s2[-1:0:-1] print s2[-1::-1] #用for 循环遍历整个字符串 s5='www.hxend.com' for ch in s5: print ch;
#字符串的高级函数
#isalnum 判断是否为 数字或者为字母 s.isalnum() s='wwwhxend55com' print s.isalnum() # s.isalpha 判断是否为字母 s='abcdef' print s.isalpha() # s.isdigit() 判断是否为数字 s='626611' print s.isdigit() # s.islower s.isupper 判断大小写 s='FDFD' print s.islower() print s.isupper() # s.isspace 判断是否为 空格 s=' ' print s.isspace() # s.upper() s.lower() 大小写互换 s='sdgsdgsJLKF' print s.upper() #字符串查找 s.startswith() s.endswith() 返回 bool值 s='www.hxend.com' s1='www' print s.startswith(s1) print s.endswith(s1) # find 函数 s.replace('','') 函数代替 找到即可替换 s='www.hxend.com' if s.find('hxend'): s5=s.replace('hxend','baidu') #不改变原来的值 print s5
#字符串分割函数
s=' abcdef 1515 dhgghl sdjgsjdg hgkjdhgjk g gskdj gjkg kjsd ' print s list1=s.split() print list1 print len(list1) # s.strip() 去掉字符串开头 和结尾的 空格 s1=s.strip() print s1 #find 函数返回 出现这个字符的位置 找不到 返回 -1 a= s1.find('c') print a s1=list(s1) print s1 # s.find('',k) find 从k开始 # s.find('') find 从头开始 import math s1=s.strip() a=s1.find(' ') print s1[:a] list11=s1.split() lens=len(list11) print format(lens,'2d') #format 的用法 i=0 for n in range(0,lens-1): #动态变化次数 while s1[a] == ' ': a=a+1 b=s1.find(' ',a) if b!=-1: #考虑到后面结尾部分 不存在空格了 print s1[a:b] else: print s1[a:] a=b '''count = 5 #这里也是动态变化次数的方法之一 for i in list1: if count == 0: pass else # do sth here... count = count - 1 #'''
#字符串分割函数的实现
s='sdgsdg..sdg.f.gs.dh.sd..fsd.g.sd' s1=s.split('.') #分割出字符串 去除'.' 然后录入到列表中去 print s1 # s.find('',k) find 从k开始 # s.find('') find 从头开始 # s.find('',k) find 从k开始 # s.find('') find 从头开始 import math def my_split(sep): s1=s.strip() a=s1.find(sep) print s1[:a] list11=s1.split(sep) lens=len(list11) print format(lens,'2d') #format 的用法 i=0 for n in range(0,lens-1): #动态变化次数 while s1[a] == sep: a=a+1 b=s1.find(sep,a) if b!=-1: #考虑到后面结尾部分 不存在空格了 print s1[a:b] else: print s1[a:] a=b my_split('.')
#append()的使用
list2=[2,32,32,23,232,3,2] list2.append(1) #append() 增加在尾部 print list2
adict={'mother':45,'father':55} print adict adict['grandfather']=87 #增加在首部 print adict print adict.keys() # 名字 print adict['father'] #提取内容 #print 默认为每个输出 输出一个换行 后面加上一个 , 可以改变这个状态 a='sdgsdgsdsdh' for i ,ch in enumerate(a): #enumrate() 函数 print ch,i
'''2.13 列表解析
这是个术语, 表示你可以在一行中使用一个for循环将所有值放到一个列表 当中: '''
sqdEvens = [x ** 2 for x in range(8) if not x % 2] print sqdEvens` '''handle = open(file_name, access_mode = 'r') file_name 变量包含我们希望打开的文件的字符串名字, access_mode 中 'r' 表示读取, 'w' 表示写入, 'a' 表示添加。''' file1=open('second.py','r') #文件操作 print file1.readline() #print file1.read() a=file1.readlines() #readlines() 自动将文件内容分析成一个行的列表, #该列表可以由 Python 的 for ... in ... 结构进行处理 print a[1]