Python学习笔记

 笔记

简介:面向对象、解释型语言,特点:语法简洁而清晰、丰富和强大的类库、能够轻松的联结其他语言,用于三种场合:shell实现工具(不适合)、控制语言(将其他程序编写的库,通过Python调用,作为一种胶水语言)、框架,解释器:字节码(bytecode)

Python的实现:原始的实现方式(CPython)、用于与java语言集成的实现(Jython)、用于与.net框架集成的实现(IronPython)

Python程序分为:模块、语句、表达式、对象

1)          程序有模块构成

2)          模块包含语句

3)          语句包含表达式

4)          表达式建立并处理对象

面向过程:以指令为中心,由指令处理数据,如何组织代码解决问题

面向对象:以数据为中心,所有的处理代码都围绕数据展开,如何组织数据结构(或者如何设计数据结构组织数据,并提供对此类数据允许处理操作)

数据结构:Python最基本的数据结构是序列,序列中每一个元素都被分配一个序号(索引),从0开始,Python中包含6种内建的数据序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象、缓冲区。例如,list[a,b]:从索引a开始到b-1结束,索引位置从0开始

基本数据类型:

1)          Integral:整型(不可变)和boolean

2)          浮点型:浮点数和复数和十进制数字

3)          字符串:不区分单引号和双引号(不可变)

4)          序列类型:列表[可变]:可直接修改内容,id不会改变,但是变得是变量名的引用、元组(不可变)。实质上,列表和元组并不真正存储数据,而是存放对象引用

调用方法type可知道变量的类型,例如,type(num)

1.     运算符

1)  算术运算符:加减乘除、取余、取商、幂计算

注意:/与//的区别:在类型是float与double类型时,/是全计算,//是取商(与java不一样);不能使用++,---操作

2)  逻辑运算符:与and 或 or非 not,is(判断is左右两边引用是否相等)

3)  比较运算符:大于、小于、不等于、等于

4)  赋值运算符:=、+=、-=

5)  优先级:幂、乘除、取余、取商、加减、比较

2.     基本语法

赋值:x=2

输出:print ‘hello’

3.     布尔类型

在进行运算时,True 就表示1,False表示0,none表示0

例如,print True+1输出1;print False*3输出0

4.     算法的三大结构:顺序、判断、循环

5.     Python的控制流语句 :if、while、for…in、try

if语句

例子,

a =3

b = 2

c =1

if a>b:

   t = b

   b = a

   a = t

   if a>c:

      t = c

      c = a

      a = t

      if b>c:

         t = c

         c = b

         b = t

 

print a,b,c

while循环:break:跳出当前循环 彻底终止循环;continue:continue之后的代码不执行,然后继续下一次的循环

注意:a 如果小于0的时候FALSE,终止while循环

for 循环:for 变量名 in 范围:

                      print 变量名

例如:list=[‘1’,’2’,’1’,’2’]

习题:1).使用for循环实现1到1000的数字之和;

           2).统计字符串str='idfalksdjfldkjieakdsfnakdsfreikndkfnaskfdeuwhfrkdnfaksdnfkasdhfurehfkndfkasyurplldsnkjdlfkajdfjldskjflsadjfldskjfirejfakdsflsajfdlkasjdflkjadjfalkjfkasdjfiajefoijaewlkjflksadjfklajdfklajlfdjaldfjalksjfladjfldfjsadkfjsalkjflafjaljflasdj'中a到z的个数。

3).PokerGame中的买牌

def buynewpoker():

    color= ['红桃','黑桃','梅花','方片']

    value=['A','1','2','3','4','5','6','7','8','9','10','J','Q','K']

    wangpai=['大王','小王']

    list=[]

    list.append(wangpai[0])

    list.append(wangpai[1])

    for i in range(len(value)):

        for j in range(len(color)):   

            list.append(color[j]+value[i])

   

return list

4).洗牌

import random

def washpoker(list):

    reslist=[]

    count=0

    while count<len(list):

        a=random.randint(0,53)

        if list[a] not in reslist :

            reslist.append(list[a])

            count+=1

    for m in reslist:

        print m

return reslist  

 

washpoker(list)

5)          .摸牌

def grouppoker(list):

    obj=[]

    list1=[]

    list2=[]

    list3=[]

    list4=[]

    for i in range(17):

       list1.append(list[3*i])

       list2.append(list[3*i+1])

       list3.append(list[3*i+2])

    for j in range(51,54):

        list4.append(list[j])

    obj=[list1,list2,list3,list4]

    for m in range(len(obj)):

        for j in range(len(obj[m])):

            print obj[m][j]

        print "-------------"

    return

 

grouppoker(washpoker(list))

6)          叫牌:

1.     将摸好的牌随机分给三个玩家

2.     叫地主:传过来的玩家名字,将底牌分配给他

 

7)1000以内的完数

count=0

for i in range(2,1001):

    sum=0

    for j in range(1,i):

        if i%j==0:

            sum +=j

    if i==sum:

        count+=1

print count

8)1,2,3,4组成不重复且数字也不重复的三位数

count=0

for i in range(1,5):

    for j in range(1,5):

        for k in range(1,5):

            if i!=j and i!=k and j!=k:

                count+=1

print i,j,k

print count

 

 

6.     输入与输出:input()/raw_input()与print语句

格式化输出:print  ‘String  %format1 %format2 ’ %(variable1,variable,…)例如,num = 7.9 print ‘the num is %f’ %num/print ‘the num is %d’ %num

7.常用函数:

dir([obj]):显示对象属性,如果没有提供参数,那么显示全局变量的名字

help([obj]):显示对象文档

len(obj):返回对象长度

range():返回一个整数列表,从0开始

range(a,b):返回从a开始到b-1的列表

int(obj):转成int类型

str(obj):转成字符串类型

type(obj):返回对象类型

append(obj):给列表添加一个元素

extend([obj]):参数中的列表添加到自身列表的末尾

insert(a,b):从索引值为a的位置添加一个元素b,所以list.insert(0,x)相当于list.append()

remove(x):删除列表中第一个值为x的函数,如果没有,那么这个函数就会执行报错

pop(i):删除列表指定位置的元素并返回它。i表示这个参数是可选的,如果不输入,将删除最后一个元素并返回

index(x):返回第一次出现x元素的索引值

count(x):统计元素x的个数

reverse():反转列表中的元素

random.randint:

random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

random.uniform:

 

random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。

random.random

random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0

in 或者 not in

在python中可以通过in和not in关键字来判读一个list中是否包含一个元素,例如,

theList = ['a','b','c']

if 'a' in theList:

    print 'a in the list'

练习:

1.List=['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q']

1)列表不适用reverse函数 实现反转

2)列表使用reverse函数进行反转后  倒序(从z开始到a)统计 列表中各个字母数量总数如 z 15……………… a 12

3)按照统计的大小输出

答:1)list =['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q']

for i in range(1,len(list)+1):

print list[-i]

list =['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q']

#for i in range(1,len(list)+1):

 #   print list[-i]

 

list.reverse()

test=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

test.reverse()

for j in test:

    print j,list.count(j)

3)list =['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q']

c=[]

for i in range(len(str)):

   count=0

   for j in list2:

         if str[i]==j:

              count+=1

   c.append(count)      

#print list2[c.index(max(c))]

co=0

temp=[]

for j in range(3):

    for i in str:

       if list2.count(i)==max(c)-j:   #字母排序

             temp.append(i)      

             co+=1

       if co==3:      #取前3个

             break

 

print temp

 

2.冒泡排序

def maopao(list):

    temp=0

    for i in range(len(list)):

        for j in range(i+1,len(list)):

            if list[i]>list[j]:

                temp = list[j]

                list[j]=list[i]

                list[i]=temp

               

    return list

8.python语句和语法

标识符:大小写敏感

Python关键字列表和iskeyword()

错误:expected an indented block;解决:首行缩进4个字符

 

 

 

转载于:https://my.oschina.net/u/3684567/blog/1536675

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值