python入门知识
1:python的产生与简介
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂。
Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。
通过 Python 来运行的你的程序有两种方法——使用交互式解释器提示符或直接运行一个源代码文件
2:python注释
python注释语法为 #注释语句
也可以用三引号(多行字符串)的形式来做多行注释
- #可以在这里注释
- print('hello world') #也可以在这里注释
- """
- 这是一个多行字符串,可以用来对代码进行多行注释
- """
3:变量
正如其名字所述那般,变量的值是可以变化的,也就是说,你可以用变量来存储任何东西。变量只是你的计算机内存中用以存储信息的一部分。python语言的变量可以用来存储任意数据类型的值,所以可以看出python是一门动态语言。与之对应的是静态语言,静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。如Java就是典型的静态语言。需要通过变量名来调用变量的值。
变量名的命名需要满足以下规则:
1)变量名只能由字母,数字,下划线组成,且首字符不能为数字
2)变量名不推荐使用关键字,变量名区分大小写
定义一个变量(变量申明语句)的语法如下
- name = 'rock' #变量名 赋值符号 值
- age = 18
定义变量名一般有两种方式:驼峰体(UserName)和下划线式(user_name,python中推荐使用这种方式)
变量有3个重要属性:id标记占用内存中的位置,type数据类型,value值
- name = 'rock'
- print(id(name),type(name),name)
- a == b #这里比较的是两个变量的value值
- a is b #这里比较的是两个变量的id值
内存中分别分给变量名和变量一定内存空间,变量名在内存中指向变量,此时该变量的引用计数为1,若同时存在另一个变量名指向该变量,则该变量的引用计数为2,当不存在任意一个变量名指向该变量时,其引用计数变为0,此时,python内部的垃圾回收机制会把该变量当成垃圾回收,以释放内存空间。
4:python数据类型
1)数字:数字分为整数(int)和浮点数(float)
2)字符串:包含在引号里面的字符序列(单引号/双引号指定单行字符串,三引号用来指定多行字符串)
3)布尔型:只有两种值,即True 和 False
- #所有数据类型都自带布尔值
- 1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
- 2、其余均为真
4)列表:
- #在[]内用逗号分隔,可以存放n个任意类型的值
- names = ['wang','li','wu']
- #取队列中的值采用索引的方法,索引值从0开始, names[0] 即取队列中的第一个值,也可用负数索引,names[-1] 即取队列最后一个值
5)字典:
- #在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
- data = {'name':'mark','age':18,'hobbies':['run','eat']}
- #取字典里面的值 data['name'] 就可以得到值 mark ,取其它值类似
6)元组:
atuple = (1,'sf,',3,'jkk') #属于不可变类型
7)集合:
aset = {1,'sf',2,'www'} #一组key的集合,key是不能重复的,所有集合中不存在重复的元素,元素只能是不可变类型
5:基本运算符
算术运算符:+(加),-(减),*(乘),/(除),**(乘方),// (整除,结果向下取整),%(取余)
赋值运算符:= ,+=(a+=1是a=a+1的快捷写法,其它快捷写法类似),-=,*=,/=
位操作符:
<< 左移,将数字的位向左移动指定的位数 如 2<<2 解释:2的二进制为10,左移后为1000,即其结果为十进制10
>> 右移,将数字的位向右移动指定的位数
& 按位与
| 按位或
^ 按位异或
~ 按位取反
比较操作符:< 小于,> 大于,<= 小于等于,>= 大于等于,== 等于,!= 不等于
逻辑操作符:and (逻辑与),or (逻辑或),not (逻辑非)
6:格式化方法
1)使用占位符 %s(字符串占位符),%d(整数),%f(浮点数)
print('My name is %s,my age is %s' %('lufei',18))
- #若字符串中本身有一个普通%,则需要转义
- #%% 此时可表示一个普通的%
- print('rate:%s %%' %7)
2)format()方法
- name = 'rock'
- age = 18
- print('{0}was{1}years old'.format(name,age))
- #另一种写法
- print('{}was{}years old'.format(name,age))
7:控制流语句
1)if 语句,即条件判断语句
- #if语句语法如下
- if 条件表达式 : #注意不要丢了后面的冒号
- if块
- elif 条件表达式 : #可选部分
- elif块
- else : #可选部分
- else块
2)while循环语句
while….else 与 for … else 中的else语句在正常遍历完所有项目后执行,即循环体内没有break语句、没有return语句,或者没有异常出现。
- #while循环语句语法
- while 条件表达式或条件语句: #注意后面的冒号不能丢
- 循环块
- else: #可选部分
- else块
3)for循环语句
for循环主要用来进行迭代(Iteration)操作,需要作用于一个可迭代对象
- #for循环会在一系列对象上进行迭代,意即它会遍历序列中的每一个项目
- #for...in循环语句的语法
- for...in 序列: #后面有冒号结尾
- 循环块
- else: #可选部分
- else块
- #使用如下方法判断一个对象是否是可迭代对象
- from collections import Iterable
- print(isinstance('abc', Iterable)) #True 所以字符串是可迭代对象,可用for...in 进行迭代操作
- print(isinstance([1,2,3], Iterable)) #True
- print(isinstance((1,2,3), Iterable)) #True
- print(isinstance({'name':'rock','age':18}, Iterable)) #True 默认迭代的是key
- print(isinstance({1,2,3,'a'}, Iterable)) #True
- print(isinstance(123, Iterable)) #False
用for…in 迭代字典时默认迭代的是key,若需要迭代value,可以使用for value in adict.values();若需要同时迭代key和value,可以使用for k,v in adict.items()。如果大家对Python感兴趣的话,可以加一下我们的学习交流抠抠群哦:649,825,285,免费领取一套学习资料和视频课程哟~
补充1:for…in 迭代还可以用来操作文件,可以依次取得文件的每一行内容!!!
补充2:enumerate()函数可以把一个list变成索引-元素对
- a = ['a','b','c','d']
- print(enumerate(a))
- for i,s in enumerate(a):
- print(i,s)
- # <enumerate object at 0x000001CFFEFA3FC0>
- # 0 a
- # 1 b
- # 2 c
- # 3 d
- b = 'rockyou'
- for i1,s1 in enumerate(b):
- print(i1,s1)
- # 0 r
- # 1 o
- # 2 c
- # 3 k
- # 4 y
- # 5 o
- # 6 u
4)break语句与continue语句
break语句用来中断循环语句(while循环或for循环),即跳出本层循环,不影响上一层的循环
continue 语句用以告诉 Python 跳过当前循环块中的剩余语句,并继续该循环的下一次迭代。