Python学习

小编最近在学习Python入门的基础语法,为巩固知识,整理出基本要点,更好的学习理解

1.Python的编译器:建议下载最新版的anaconda和pycharm。

2.python的基本数据类型

                             数据类型名称
number:int ,bool,float,complex 数字类型
list,range,tuple序列类型
str文本序列类型
bytes,bytearray,memoryvie二进制序列类型
set,frozenset集合类型
dict映射类型

**第三模块可以填充数据类型(eg:numpy)

注:数字类型:1.int:整型,其长度没有限制(bool:布尔型,为整型的子类(True为真1和False为假0两种常量))

                      2.float:浮点型,Cpython的浮点数通常使用c中的double来实现

                      3.complex:复数型,有实部和虚部。如复数z的实部是z.real,虚部是z.imag

3.相互转换

函数作用
int(x)将x转换成整数类型
float(x)将x转换成浮点数类型
complex(real,     [,imag])创建一个复数
str(x)将x转化为字符串
repr(x)将x转换为表达式字符串(字符表达式是由 字符串运算符 将字符型数据连接起来的式子,其中的字符型数据可以为字符型的 常量 、 变量 或运算结果为字符型的 函数 )
eval(str)计算在字符串中有效python表达式,并返回一个对象
chr(x)将整数x转化为一个字符
ord(x)将一个字符x转化为它对应的整数型
hex(x)将一个整数x转换为一个十六进制字符串
oct(x)将一个整数x转换为一个八进制字符串3.3.

          4.相关运算符

          算术运算符 > 比较运算符 > 赋值运算符

       1.赋值运算符:=,+=(加法赋值运算符),-=(减法赋值运算符),*=(乘法赋值运算符),/=(除法赋值运算符),**=(幂赋值运算符),%=(取模(余数)赋值运算符),//=(取整除赋值运算符

      2.算术运算符

运算符功能介绍示例
+,-,*,/分别完成两个对象加,减,乘,除>>>3+2输出5
%取模。返回除法的余数>>>7%2输出1
//取整除。向下取接近除数的整数

>>>9//2输出4

>>>-9//2输出-5

**

幂。返回x的y次幂

>>>2**3输出8

**将任意两个数相除时,结果总是浮点数,即使这两个数都是整数且能整除。

**在其他任何运算中,如果一个数是整数,另一个数是浮点数,结果也是浮点数。

3.比较运算符

运算符功能介绍示例
==等于。比较对象是否相等(a==b)返回False
!=不等于。比较两个对象是否不相等(a!=b)返回True
>若大于,则返回1来表示真,与True等价。否则,返回0表示假,与False等价

(a>b)返回True

<若小于,则返回1表示真,与True等价。否则,返回0表示假,与False等价(a<b)返回True
>=若大于或等于,则返回1来表示真,与True等价。否则,返回0表示假,与False等价(a>=b)返回False
<=若小于或等于,则返回1来表示真,与True等价。否则,返回0表示假,与False等价(a<=b)返回False

 4.逻辑运算符

运算符功能介绍
and“与”运算符,一假为假,全真为真
or“或”运算符,一真为真,全假为假
not“非”运算符,为真则假,为假则真

5.注释

1.#单行注释

2.Ctrl+/可以对所选中的代码进行多行注释

6.输入输出

1.输入:变量=input(‘输入字符串’)

a=input('请输入名字')
a=input()spilt(' ')#可以在每个数字或字符串输入后空格加以分隔

2.输出:print()语句可以输出

7.if条件语句 

1.if条件语句是最基本的逻辑判断程序流控制语句

2.语句的关键词是if...elif...else

格式为if  C1:

               程序代码1

          elif  C2:

               程序代码2

          else :

              程序代码3

3.注:if条件后面用冒号”:“表示满足条件后要运行的语句块

          if条件语句可以有0~n(任意)个elif,而不用else if

          if条件语句结束可以有0~1个else语句

          if语句可以嵌套,使用缩进空格数来区分嵌套语句块

4.eg:输入0~100任意成绩数据,通过if条件语句判断成绩的等级

num=int(input('请输入分数’))
if 0<=num<=60:#判断值是否在0~60
      print("挂科")
elif 60<=num<=70:#判断值是否在60~70
      print("及格")
elif 70<=num<80:
      print("良好")
elif 80<=num<=100:
      print("优秀")
else:
      print("输入有误")


8.python循环语句

1.while循环语句

运行while循环语句,程序先判断循环条件,如果条件满足,则进入再循环

**注:1.while循环语句后面用冒号“:”表示满足条件后要运行的语句块

           2.while循环语句可以嵌套,使用缩进空格数来区分嵌套语句块

           3.while循环语句可以有else语句

while表达式:while  条件语句:

                              程序代码1

2.for... in... 循环语句

1.python中的for...in...语句是另一种循环语句,语句中必须有一个可迭代的对象才能循环。它会遍历序列中的每一个元素

2.**python的for语句是遍历任何可迭代的对象,如:list,set等,而不仅用来控制循环次数或循环条件。while和for循环语句可以包含else子句,即结束while或for循环后运行的语句

3.range函数:
range(起始值,终止值,步长)
步长 :每次循环序列增长值

4.**for循环代码示例

for 迭代对象 in序列:

        代码块(一行语句或多行代码)

else:

        代码块(一行语句或多行代码)

 while 条件:

  else:

             代码块(一行语句或多行代码)

示例代码:

sites=["Youtub","Google","Baidu","Taobao"]
for site in sites:
       if site=='sohu':
               break;
       print("get"+site)
       else:
            print('没有循环数据')
       print('完成循环')

9.文本序列类型str

转义字符

                      

转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\'单引
\a响铃
\b退格
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页

字符串:单引号,双引号,三引号包括的文本序列

1.井号字符(#)只能单行注释
多行字符串(三重引号)可以多行注释

2.原始字符串是python中一类比较特殊的字符串,以大写字母R或者小写字母r开始。在原始字符串中,字符‘\'不再表示转义字符的含义

 3.字符串常见函数

class str(obiect,encoding=‘utf-8’,errors=‘strict’)功能:返回object按照utf-8编码的字符串版本

str.count(sub[,start[,end]])功能:返回字符串sub在[start,end]范围内非重叠出现的次数

str.encode(encoding='utf-8',errors='strict')功能:把字符串按照格式编写,默认为‘utf-8'.errors默认为’strict‘。在网络传输时候防止不同平台下的文本编码不同导致乱码

str.startswith(prefix[,start[,end]])功能:如果字符串以指定的prefix开始则返回True,否则返回False,prefix可以为多个供查找的前缀组成的元组

str.endswith(prefix[,start[,end]])功能:如果字符串以指定的prefix开始则返回True,否则返回False,prefix可以为多个供查找的后缀组成的元组

str.find(sub[,start[,end]])功能:返回字符串sub在是s[start:end]切片内被找到的最小索引值’。可选参数start与end会被解,读为切片表示法

str.split(sep=None,maxsplit=-1)功能:返回一个字符串内单词组成的列表,使用sep表示分隔符

str.strip([chars])功能:返回原字符串的副本,移除其中的前导和末尾字符

str.replace(old,new[,count])功能:返回字符串的副本,其中出现的所有子字符串old都将被替换为new,如果给出了可选参数count,则只替换前count次出现

str.upper(),将字符串里的字母全部大写

str.lower(),将字符串里的字母全部小写

str.isspace()字符串中是否都是由空格、制表符和换行符组成,并且非空

str.istitle()字符串中是否以大写字母开头、后面都是小写字母的单词、数字或空格

str.join()返回一个用分隔符连接序列各个元素后的字符串(注:分隔符可以为空)','.join(str(m) for m in list[])

str.title()字符串内的所有单词的首字母大写

str.rjust右对齐字符串,左边填充上‘填充字符’,总字符长度为‘数字’

str.center字符串居中,两边填充上‘填充字符’,总字符长度为‘数字’

.strip() --- 删除两边空格

.lstrip() --- 删除左边空格

.rstrip() --- 删除右边空格

.replace(" ","") --- 删除所有空格

.split() --- 先切分,"".join() --- 再拼接

4.此时我们想要逆序输出world,即输出"dlrow"
只需要使用变量名[结束索引:开始索引-1:-1]

>>>a = "Hello , world!"
>>>print(a[11:6:-1])
dlrow
>>>print(a[11:6:-2])
drw

为什么是结束索引+1和开始索引-1?
python中所有的区间都是左闭右开的,所以右边的数取不到,要想取到右边的数只有将右边的数向右再延伸一个即加一。至于为何逆序就要减一,你可以把字符串反过来看, 

!wolleh
6543210

10.列表

一.list是一个基于位置的有序对象集合,它是可变序列,也是python中最常用的数据结构之一。list是在方括号([])之间,用逗号分隔开的元素对象序列。

1.有序:列表中元素是有序的

2.可变:列表中的元素可变

3.异构:列表中的元素是对象

4.可重复:列表中可以有可以有重复的对象元素

5.可嵌套:列表支持嵌套(可包含子列表)

列表的创建

1.使用一对方括号来表示空列表:[]

2.使用方括号包括列表元素,元素之间用逗号隔开

3.使用列表推导式:[x for x in range(,)]

二.list相关函数

1.sort(*,key=None,reverse=False#倒序)#对列表原地排序(数字从小到大)

2.sort(*key=None,reverse=True#倒序)#对列表原地排序(数字从大到小)

3.增

a.append(i)把i所代表的元素都添加到列表a中去列表.
a.extend(序列): 在列表末尾追加一个序列

a.insert(索引,元素): 在列表对应的索引插入元素

4.删

1.del d[key]:将d[key]从d中移除

2.pop(key[,default]):如果列表中存在key则将其移除并返回其值

3.列表.remove(元素): 删除列表中对应元素的第一个匹配项。

4.clear():清空列表中的所有元素

5.修改元素

列表[索引]:新元素:将列表对应索引的元素,修改为新元素。

6.

len()函数

len()函数可以取得列表的长度

7.sum()函数

sum()函数可以将列表中所有数相加

8.enumerate()函数

在for循环中迭代,每次enumerate()函数将返回两个值:列表表项的索引和列表表项本身。

9.查:

列表.index(元素): 返回元素对应的索引

11.元组

.1.元组类似列表,是一个基于位置的有序对象集合,不同的是元组是不可变序列,一旦创建不可以被修改,元组是在圆括号之间,用逗号隔开的元素序列。元组的数据类型特点如下:

1.有序:元组中元素是有序的

2.不可变:元组中的元素不可变

3.异构:元组中的元素是对象

4.可重复:元组中可以有可以有重复的对象元素

5.可嵌套:元组支持嵌套(可包含子列表)

2.元组的创建

1.使用一对圆括号来表示空元组:()

2.使用一个后缀的逗号来表示单元组。如a,或(a,)

3.使用以逗号分隔的多个项:a,b,cor(a,b,c)

4.使用tuple()函数创建

3.元组的操作
index()    从元组中找出某个对象第一个匹配项的下标位置。
count()    统计某个元素在元组中出现的次数。
len()    计数元组元素的个数,并返回值。
max()    返回元组中元素的最大值。
min()    返回元组中元素的最小值。

12.字典

1.字典的创建:1.字典可以通过以逗号分隔的键值对列表包含大括号之内来创建。

2.字典常见的函数:

1.增

d[key]=value:将d[key]设为value,如果d中原先没有key,则将增加key:value键值对元素。如果d原先有key,则将其值修改为value

2.删

del  d[key]:将d[key]从d中移除

pop(key[,default]):如果字典中存在key则将其移除并返回其值,否则返回default

popitem():按LIFO的顺序从字典中移除并返回一个键值对

clear():清空字典中的所有元素

3.修

setdefault(key[,default]):若存在键key,则返回对应的value。否则增加为key:defult键值对

update([other]):使用来自other的键值对更新字典,覆盖原有的键,如d.update(red=1,blue=2)

4.查

key in d:如果字典d中存在键为key的元素则返回True,否则为False

key not in d:如果字典d中不存在键为key的元素则返回True,否则为False

d[key]:返回字典d中以key为键的项

get(key[,default]):如果key存在于字典d中则返回key的值,否则返回default

5.值与值返回相关函数

keys():返回由字典键组成的一个新视图

list(d):返回字典d中使用的所有键的列表

values():返回由字典值组成的一个新视图

items():返回由字典项(键值对)组成的一个新视图

len(d):返回字典d中的元素个数

copy():返回原字典的浅复制

6.zip()函数:

zip()函数使用以上两个可迭代对象作为参数,它将两个或两个以上可迭代对象中对应元素打包成意义对应元组,然后返回由这些元组组成的一个zip对象,如果各个迭代器的元素个数不一致,则返回与最少元素的可迭代对象长度

zip([iterablel,iterable2,...])

*号操作符与zip相反,可以将元组解压为列表

 l

13.集合

可以使用大括号 { } 或者 set() 函数创建集合,但创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

1.集合特点:
1.集合是一个无序的不重复元素序列
2.集合中的元素是唯一的
3.集合可以用来去重

2.集合操作

添加一个数据:
集合序列.add(数据)

添加序列:
集合序列.update(序列数据)


集合序列.remove(数据)
删除集合中指定的数据,如果数据不存在就报错

集合序列.pop()
随机删除集合中的某个数据

集合序列.discard(数据)

删除集1合中指定的数据,如果数据不存在不做任何操作

 13.函数

函数是实现某一逻辑功能的代码段,这段代码的名字就是函数名,函数可以提高代码复用性和可读性

1.函数的定义

          一个完整函数由函数名及参数列表,函数说明,函数代码,返回值4部分组成,格式: 

              def 函数名(参数列表):

                          参数说明

                函数代码

                return 返回值

注意:1.函数先定义后调用,如果先调用会报错。
2.函数没有被调用时,函数里面的执行语句不会被执行。

返回值

函数并非总是直接显示输出,有时也可以处理一些数据,再返回处理好的数据。函数返回的数据称为返回值。

注意:函数中可以同时包含多个 return 语句,但只会执行了一个return,return的功能是返回值并退出当前函数,return语句后面的语句都不执行。

变量的作用域

1.局部变量

在函数体内定义使用的变量称为局部变量.局部变量只存在于函数体局部,所有变量的作用域是它们被定义的块,从定义它们的名字的定义点开始,程序块运行结束后,自动释放局部变量所占内存

2.全局变量

函数中定义全局变量(即它不存在于任何局部函数或类的作用域中),需要在函数或类中将变量用全局语句修饰.注意,全局变量不能赋值

3.nonlocal变量nonlocal声明的变量在上级局部作用域内,而不是全局定义.

globalnonlocal
声明变量的作用域为全局作用域关键字用来在函数中使用外层(非全局)变量

lambda表达式

lambda是一种特定的表达式,也是一个匿名函数(即没有函数名称的函数),可以包含表达式和语句,lanmbda表达式的使用语法如下:

lambda[输入参数]:表达式或语句块

x=2
y=3
f=lambda:x,y:x*x+y*y
g=lambda:39
print(f(x,y))
print(g())

        参数()                                                                      

1.

位置或关键字参数(Positional-or-keyword parameter)

仅位置的参数(Positional-only parameter)

任意数量的位置参数(var-positional parameter)

任意数量的关键字参数(var-keyword parameter)
2.形参跟实参

基本定义

  • 形参:形式参数,在定义函数时,函数名后面括号中的参数;
  • 实参:实际参数,在调用函数时,函数名后面括号内的参数,也就是将函数的调用者提供给函数的参数成为实际参数。

两种情况 

1.值传递

实际参数的值传递给形式参数,在相关代码段执行相关操作

实际参数为不变对象时,进行值传递

2.引用传递

将实际参数的引用传递给形式参数;
当实际参数为可变对象时,进行的是引用传递

可变对象和不可变对象

所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变。
所以,在python中哪些是可变数据类型,哪些是不可变数据类型就尤为关键。

可变数据类型:列表list和字典dict,set,自己定义的类对象,numpy中的ndarray对象,具体参考:NumPy:拷贝和视图。
不可变数据类型:整型int、浮点型float、字符串型string和元组tuple,以及frozenset。(注意:字典的key只能是不可变对象,即字典的key只能是整型int、浮点型float、字符串型string和元组tuple)。
 

def print_info(name,a,b)
    print(name+'-'*30)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
    print('id(a)=',id(a)=',a,'\t id(b)=',id(b),'b=',b)
def demo(a,b)
    a=a+20
    b.append(99)
    print_info('函数体内',a,b)
if__name__=='__main__':
    a,*b=list(range(1,6))
    print_info('初始状态',a,b)
    demo(a,b)
    print_info('结束状态',a,b)

最后

如果你觉得这篇文章对你有用,建议点赞收藏。
欢迎各位读者指正错误,请在评论区留言。或者发表自己的看法,小编不胜感激。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值