python入门

windows下idle快捷键是:

重复下一条命令:alt+n

重复上一条命令:alt+p

mac快捷键是:

重复上一条命令:control+n

重复下一条命令:control+p

BIF:built-in function

做为一个脚本语言,python有很多BIF(内置函数)比如:

print:直接将内容打印出来,我们不用关注这个内置函数是如何实现打印出的

input:打印出一个提示字符串,并要求用户输入

查看python有多少BIF使用命令:dir(__bulitins__)

python 的注释

python 中多行注释使用三个单引号(''')或三个双引号(""")。

#这是单行注释

'''  多行注释,单引号
'''

"""多行注释,双引号
"""

 只有用多行注释的函数在使用 help(function)的时候才会打印出对应的注解

python的基础数据类型以及运算符

数据类型转换:

str()

int()  : python3以后int里就可以存放长整型了

float()

查看数据类型

type():返回数据类型

isinstance:返回布尔类型  例如:isinstance(temp,int)

运算符:+;-;*;%

/:会精确系小数位的除法

**:密运算  3**2 :3的2次方

// :不精确的除法

逻辑操作符:

and :类似java中的&&         

or   :类似java中的 ||          

not :一元操作符  取相反的布尔值,相当于java中的!

python唯一一个三元操作符:

small = x if x<y else y

等价于:

if x < y:
  small = x;
else:
  y

断言:assert 3>4       //3>4明显是错误的,而断言assert就是在代码错误的情况下,也可以正常运行,不过运行到这个断言的时候会抛出异常,这方便我们程序调试

一个猜数字大小的游戏

import random
print("这是一个猜数字大小的游戏")
num = 3
secret = random.randint(1,10)
while(num>0):
    temp = input("请输入你猜测的数字大小")
    while(not temp.isdigit()):
        temp=input("您输入的不是一个数字,请重新输入")
    guess = int(temp)
    num = num-1
    if guess == secret:
        print("猜对了呢")
        break;
    else:
        if guess > secret:
            print("猜大了")
        if guess < secret:
            print("猜小了")
print("game over!")

列表、元组和字符串

python的列表写法类似java的数组,不过不同的是它可以在这个“数组”中塞任何你任何数据类型的东西,所以其实内部更像java的list集合,而java的数组却只能存放存储固定大小的同类型元素。

例:mix = [1,1,3,4,5,6,[1,3,4],"song","cui","song","song"]

往列表中添加元素

mix.append(6)    //append添加元素到列表末尾,不能同时添加多个元素

mix.extend([7,8])   //使用一个列表来拓展另一个列表,[7,8]这个列表同样是添加到列表尾部

mix.insert(1,0)    //将0这个元素添加到列表角标为“1”的位置。

name = mix.pop()  //将mix尾部的元素弹出,name就被赋值为尾部的元素值,并且再次查看mix就会发现最尾部元素被删除了

mix.pop(2)   //也可以指定弹出某个位置的元素,例如,弹出角标为2的元素

从列表中获取元素

获取方式和java一致,使用索引值从列表中获取单个元素

mix[1]        

mix[0],mix[1] = mix[1],mix[0]  //使用这种方式可以将mix[0]和mix[1]的位置对调

获取列表中的列表,和获取java中二维数组类似,mix[6][1] 

从列表中删除元素

mix.remove(1)  //删除1这个元素,但是只会删除最前面的那个1,可能python的机制就是角标从小到大找这个1的元素,找到就删除,删除以后不会顺位找下去。

del mix[0]   //删除mix[0]元素,del是一个语句,不是列表的方法

del mix    //删除mix这个列表。直接删除mix列表。而非清空mix的数据。

列表分片

使用列表分片可以取出某个区域的元素。比如取出角标从0到3的元素,写法为mix[0,4],结束位置不包含。

mix[:4]   //取出0到3角标的元素

mix[1:]   //取出1到最后角标的元素

mix[:]    //取出全部元素,可以用来“拷贝”列表,mix2 = mix[:]。  mix2 = mix可是完全不一样的效果,它会导致mix2和mix的内存指向一直,修改其中某一个列表的时候,另一个也会变,并没有实现真正意义上的“拷贝”

分片还有可以接收第三个参数“步长”,顾名思义,就是隔一个步长的元素取一次值

list1 = [1,2,3,4,5,6,7,8,9]

list1[0:9:2]    //结果值为[1,3,5,7,9] ,取角标0到8的元素,每前进两个元素取一次值。

list1[::-1]       //当步长为-1的时候相当于复制一个反转的列表,结果为[9,8,7,6,5,4,3,2,1]

列表的一些常用操作符(+ , * ,>,<,in ,not in )

list1 = [123]

list2 = [456]

list3 = [123,789]

list4 = [234,345]

list1 + list2   // 结果为[123,456]

list1 * 3       //结果为[123,123,123],*也叫重复操作符号

list1 < list2  //结果为true

list3 < list2  //结果为true,当列表中含有多个元素时,默认从第一个开始比较,只要有一个pk赢了,那么就算整列赢了
123in list3   //结果为true

"123" not in list3   //结果为false

列表的一些方法

list1 = [1,1,2,3,5,6,13,21]

list1.count(1)       //计算元素1在列表中出现的次数,返回结果为2。

list1.index(1)       //元素1所在的位置,返回索引值,这里返回结果为0,可以看到和上面pop一致,也是返回了最前面的索引元素的位置

所以要如何查找第二个“1”元素所在位置,index还提供了第二个以及第三个参数,在指定范围中查找元素位置

start = list1.index(1) + 1 

stop = len(list1)

list1.index(1,start,stop) //  在start和stop索引范围内的列表元素中查找元素“1”所在位置,返回结果为1

list1.reverse()            //将元素的值翻转顺序 ,结果为[21,13,6,5,3,2,1,1]

list1.sort()                //将元素从小到大排序。在使用reverse()就可以从大到小排序了。

list1.sort(reverse = true) //一步到位实现从大到小排序。 

 

元组(和列表类似,但是不能被修改,元组获取元组中元素的方式和列表一致,这里就不多加讲解)

一、创建一个元组

tuple = (1,2,3,4,5,6,7,8,9)

那么问题来了,如果创建一个元素只有1的元组,很多小可爱可能会按下面的写法了

temp = (1)

这种写法我们可以获取下temp的类型

type(temp)     

可以发现结果为int类型。而正确的创建方法应该是下面

temp = (1,)     //逗号才是关键

其实没有()也是一样可以创建元组的

temp = 1,

temp = 1,2,3,4

temp = "song","cui",(1,2,3),"ting"

打印上述的数据类型,可以发现类型都是tuple元组

下面简单介绍一下字符串的常用方法

1、将字符串所有字符变小写

str1 = “SongCuitinTIng”

str1.casefold()

输出结果:songcuiting

2、查找指定位置区域,某个字符串所在位置的出现的次数

cout(sub[,start[,end]]),(注:python的官方文档中[]括起来表示可选) ,用法和列表中一致

str1.cout(i,0,10)      //返回0到9角标的元素i出现的次数

3、查找指定位置区域,某个字符串所在位置的索引

find(sub[,start[,end]])   

index(sub[,start[,end]])

find和index的区别在于find如果没有查找到会返回-1,而index则会抛出异常。

 4.join

'x'.join("Test")         //结果‘Txexsxt’

' '.join(["I","love","song"])         //结果'I love song'

5、replace(old,new[,count]) ,替换指定位置字符串

6、split

7、格式化字符串。format

"{0} love {1} ".format("I","you")    //输出结果   I love you ,其中大括号内数字的写法就是位置参数。用的是位置参数

"{a} love {b}".format(a = "I",b="you")         //输出结果   I love you ,用的是关键字参数

需要注意的是如果位置参数和关键字参数结合一起使用的话那么位置参数一定要在关键字参数之前,否者就会报错。

序列的常用方法(不解释,小可爱自行了解如何使用)

1、list([iterable])

2、tuple([iterable])

3、str(obj)

4、len(sub)

5、max(...)

6、min(...)

7、sum(iterable[,start])

8、sorted(iterable,key=None,reverse=false)

9、reversed(sequence)

10、enumerate(iterable)

11、zip(iter1[,iter2[...]])

原文地址:https://www.cnblogs.com/songcuiting/p/8719696.html