首页 > 编程语言 > 详细

python学习笔记一(基础篇)

时间:2016-01-02 18:24:58      阅读:260      评论:0      收藏:0      [点我收藏+]
简单介绍一下python2.7和3.5的区别
 
print
 
在python3.5中print 变为print()
Old: print "The answer is" , 2 *2
New: print( "The answer is" , 2 *2 )
如果想要不换行,之前的 2.x 版本可以这样
print x,   #在末尾加上‘ ,’
但在 3.x 中这样不起任何作用,要想不换行你应该写成
print(x,end = ‘‘ )
 
/
 
Old: 1 / 2  #结果为0
New: 1/2   #终于等于0.5
 
raw_input
 
New: input() 等于 Old:raw_input
 
input
 
在3.5中input已经被删除
New:eval(input()) 等于 Old:input()
 
列表排序
 
python3.5中序列中不同类型不能进行顺序排列
>>> lb=[1,2,3,a,b]
>>> lb
[1, 2, 3, a, b]
>>> lb.sort()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    lb.sort()
TypeError: unorderable types: str() < int()
>>> lb.reverse()
>>> lb
[b, a, 3, 2, 1]
python2.7
>>> lb=[1,2,3,a,b]
>>> lb.sort()
>>> lb
[1, 2, 3, a, b]
>>> lb.reverse()
>>> lb
[b, a, 3, 2, 1]

 

字符编码
 
在python3.5下,字符串存储的类型已经都成为str,包括英文,汉字
 
 在python2.7下,字符串存储类型,英文为unicode;汉字为str
 
字典keys返回值
python3.5
>>> data={haha:123,xixi:456}
>>> data.keys()
dict_keys([haha, xixi])
>>> type(data.keys())
<class dict_keys>
python2.7
>>> data={haha:123,xixi:456}
>>> data.keys()
[xixi, haha]
>>> type(data.keys())
<type list>
 
声明解释器
#!/usr/bin/env python
 
第一个python程序
#!/usr/bin/env python
print("你好,世界")
 
在linux下脚本执行
python hello.py
或者 申明了解释器
chmod +x hello.py
./hello.py #执行
 
变量
 
变量的作用:
变量是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标识符,一个变量有一个名字,
并且在内存中占据一定的存储单元,在存储单元中存放该变量的值。
 
变量的命名规则
变量名只能是字母、数字或下划线组合
变量名第一个字符不能是数字
关键字不能声明为变量名
变量名应保持同一种风格,保持友好性
check_load_one
Check_Load_One
 
当我们执行
name = ‘koka"
python 解释器干了两件事
- 在内存中创建了一个“koka”的字符串
- 在内存中创建了一个名为name的变量,并把它指向“koka”的内存地址
 
接下来看一个详细的事例:
技术分享
当你把一个变量name1赋值给另一个变量name2时,解释器只是把name1所指向的内存地址赋值给了
name2,因此name1和name2并未发生直接的关联,只不过他们指向同一个内存地址而已,所以当你
再次给name指向一个新地址后,而name2的值依旧不变。
 
输入语句
 
在python3.X版本中 输入语句有以下改变
 
raw_input
 
New: input() 等于 Old:raw_input
 
hi = input("welcome to python 3.5 :")
 
input
 
input已经被删除
 
New:eval(input()) 等于 Old:input()
 
数据类型:
 
整数:python可处理任意大小的整数;
 
浮点数:小数;
 
字符串:以‘‘或“”括起来的任意文本;
万恶的字符串拼接:python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,
并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号没出现一次就会在内存中重新开辟一块空间。
 
布尔值:只有两种值Ture or False;
 
空值:空值在python里是一个特殊的值,用None表示,0并不是空值。
 
缩进与注释
 
缩进
python 是强制缩进的语言,它通过缩进来确定一个新的逻辑层次的开始和结束;同一逻辑级别的代码必须不能有缩进;整个程序的缩进风格应该保持一致,一般为4个空格或2个空格;用冒号表示开始一个新的语句块。
 
注释
当你写程序的时候应该保持添加注释的习惯,对于自己回顾与别人查看都很方便。一般情况下,源程序有效注释量应该在20%以上,注释的原则是有助于对程序的阅读理解,不宜过多也不能太少。
单行注释:#
多行注释:"""  """ 或 ‘‘‘ ‘‘‘
 
字符串
 
格式化字符串
>>> name = "koka"
>>> print("hello %s" %name)
hello koka
注:%s是字符串,%d是整数, %f是浮点数
 
字段宽度和精度
>>> %10f % pi  #字符宽度 10
  3.141593
>>> %10.2f % pi #字符宽度10,精度2
      3.14
>>> %.2f % pi #精度2
3.14
可以使用*作为字段宽度或者精度(或者两者都使用*),此时数值会从元组参数中读出:
>>> %.*s %(5,Guido van Rossum)
Guido
符号、对齐和0填充
- : 左对齐
+:在转换值之前加上正负号
"":正数之前保留空格
0 :转换值若位数不够用0填充
>>> %010.2f % pi
0000003.14
>>> %-10.2f % pi
3.14
 
字符串方法:
find  字符串中查找子字符串
>>> With a moo-moo here.find(moo)
7
join   在队列中添加元素
>>> seq = [1,2,3,4,5]
>>> sep = +
>>> sep.join(seq)
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    sep.join(seq)
TypeError: sequence item 0: expected str instance, int found
 
>>> seq = [1,2,3]
>>> sep = +
>>> sep.join(seq)
1+2+3
lower 返回小写字母
 
replace 返回一个字符串中替换后的字符串
 
split      分割字符串成序列
>>> 1+2+3.split("+")
[1, 2, 3]
strip      返回去除两侧空格(不包括内部)的字符串
>>>    hahaha   .strip()
hahaha
translate 可以替换字符创中的某些部分,只能处理单个字符
 
列表
 
>>> [0,1,2,3,4,5]
[0, 1, 2, 3, 4, 5]
标准操作:
索引[*]、分片[:](含首不含尾)、+、*、in、max、min、赋值、删除元素
 
>>> [th] * 10
[th, th, th, th, th, th, th, th, th, th]
 
>>> 0 in [0,1,2,3,4,5]
True
 
>>> num = [0,1,2,3,4,5]
>>> num[:]
[0, 1, 2, 3, 4, 5]
>>> num[0:3]
[0, 1, 2]
列表的方法:
append       列表最后附加元素
>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
extend         列表最后追加另一个列表
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
pop             移除列表中的一个值(默认最后),并返回元素值
>>> a.pop()
3
count          统计某元素出现的次数
>>> [a,b,c,a].count(a)
2
index          查找某个值第一个匹配项的索引位置
insert          在某元素前插入值
remove       移除某个值在列表的第一个匹配项
sort            在原序列进行正向排序,意味着改变原来的列表,从而让其中的元素按顺序排列,而不是简单放回一个已排序的副本而已。
>>> x = [1,3,5,2,6,8]
>>> x.sort()
>>> x
[1, 2, 3, 5, 6, 8]
reverse        反序改变序列,不返回值
>>> x.reverse()
>>> x
[8, 6, 5, 3, 2, 1]
reversed      反向序列并返回一个迭代器
sorted         顺序排列,返回一个正向列表
>>> y = sorted(x)
>>> y
[1, 2, 3, 5, 6, 8]
列表转换为字符串
‘ ‘.join(list)
 
元组
 
元组不可改变,可以在字典中当键使用,可以作为很多内建函数和方法的返回值存在。tuple函数可以把列表转换为元组
 
>>> (username,password)
(username, password)
>>> tuple([a,b])
(a, b)
 
字典
 
{key:value}
字典的方法:
 
clear 清除字典中所有的项,无返回值或返回None

copy 返回一个具有相同键-值对的新字典

fromkeys 使用给定的键建立新的字典,每个键默认对应的值为None;可直接调用dict函数
{}.fromkeys([name,age])
{age:None,name:None}

dict.fromkeys([name,age])
{age:None,name:None}
get 访问字典项的方法,一般来说访问字典中不存在的项时会出错。
d={}
print d{[name]}
error
print d.get(name)
None
has_key  检查字典中是否含有给出的键。相当于表达式k in d.

items 和 iteritems

items 将所有的字典项以列表方式返回。iteritems 返回一个迭代器。
>>> database={koka:123,wawa:456}
>>> for key,value in database.items():
    print(key,value)
wawa 456
koka 123
pop用来获得对应于给定键的值,将这个键-值对从字典中移除。

popitem 类似与list.pop,后者会弹出列表的最后一个元素。popitem弹出随机的项,可一个接一个的移除项。

setdefault类似于get,能够获得与给定键相关联的值,还能再字典中不含有给定键的情况下设定值。
>>> d = {}
>>> d.setdefault(name,N/A)
N/A
update 利用一个字典项更新另一个字典。
 
keys 以字典的形式返回字典中的键;iterkeys返回键的迭代器
 
values 以字典的形式返回字典中的值;itervalues返回值得迭代器
>>> d={}
>>> d[1]=1
>>> d[2]=2
>>> d[1]=1>>> d.values()
dict_values([1, 2])
格式化字典
>>> phonebook={tr:1234}
>>> print("tr‘s phone number is %(tr)s." %phonebook)
trs phone number is 1234.
dict函数
通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典。
>>> items=[(name,koka),(age,18)]
>>> d=dict(items)
>>> d[name]
koka

dict函数也可以通过关键字参数来创建字典

>>> d = dict(name=koka,age=18)
>>> d
{name: koka, age: 18}
 
条件语句
number=24
number=int(input("please input the number:"))
if number == luck_num:
    print("Bingo!")
elif number > luck_num:
    print("你输入的数字太大。")
else:
    print("你输入的数字太小。")
 
嵌套语句
name = input("what is your name ? ")
if name.endswith(Gumby):
    if name.startswith(Mr.):
        print("hello Mr.Gumby")
    elif name.startswith(Mrs.):
        print(hello Mrs.Gumby)
    else:
        print(hello Gumby)
else:
    print(hello strange)
 
循环语句
luck_num = 26
counter=0
for i in range(3):
    number = int(input("please input int number:").strip())
    if luck_num > number:
        print("please input bigger number")
    elif luck_num < number:
        print("please input smaller number")
    else:
        print("bingo")
        break
else:
    print("too many time error")
#最后的else语句只会在循环正常结束的情况下才会运行,如果中间被break了,就不会继续运行了。

  luck_num = 26
  counter=0
  while counter < 3:
      number = int(input("please input int number:").strip())
      counter+=1
      if luck_num > number:
          print("please input bigger number")
      elif luck_num < number:
          print("please input smaller number")
      else:
          print("bingo")
          break
  else:
      print("too many time error")
 
break and continue
 
break负责跳出整个循环,而continue只会跳出本次循环,继续下一次循环。
 
for i in range(10):
    if i%2 ==0:
        continue
    print("这是奇数",i)
 
break只能跳出一层循环,有的时候你可以能会有两个或多个循环嵌套,python也不支持一次性跳出所有循环;可以在
一层循环中添加标志让另一循环在跳出时修改标志一起跳出。
 
loop1 = 0
loop2 = 0
while True:
    loop1 +=1
    print("Loop1:", loop1)
    break_flag = False #在父循环中设置一个跳出标志,子循环要想连父循环一起跳出,就改变这个标志。
    while True:
        loop2 +=1
        if loop2 ==5:
            break_flag = True #改变标志
            break #跳出当前循环
    print(Loop2:,loop2)
    if break_flag:
        print("接到子循环跳出通知,我也跳出循环")
        break

 

文件操作

打开文件

open() 打开文件,python 3.5 把file()删除掉
 
with open(somefile.txt,‘r‘) as files:
  do_something(files)
with 语句打开文件并把值赋值到变量,之后可以对文件操作。文件在语句结束之后会自动关闭,即使异常引起也会退出。
 
文件打开模式
r
w(>)
a (>>)
b (二进制文件)
+(读写模式)
读文件内容:
#一次性读取所有内容到内存
obj.read()
#一次性读取所有行并将其作为列表返回
obj.readlines()
#一次仅读取一行
obj.readline()
 
写文件内容
#写入字符串
obj.write(‘内容‘)
#写入字符串列表(实际上任何序列和可迭代的对象都行),它会把所有的字符串写入文件。
writelines(list)
 
关闭文件
obj.close()
 

python学习笔记一(基础篇)

原文:http://www.cnblogs.com/koka24/p/5094978.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!