1.第一个python程序
hello word

print('hello world')

2.变量
简单来说,变量就是最基本的储存单位,可以暂时的储存放入的东西
其结构为 标识符+赋值+值

number=44
#将44作为值赋值给标识符

如何深刻理解赋值过程
在python中 变量的建立是这样实现的
以number=44为例
python在内存中开辟一个位置/空间并在其中储存一个数字(默认为int)
然后将这个空间加上一个索引number 也就是说将number指向了44所在的空间
我们可以通过ID方法来查询其所在的空间地址

>>> print(id(number))
4377659056

理解三种赋值过程

a=1
#直接赋值 开辟了一个空间并将a指向了1所在的空间

a=2
b=1
a=b
#这个过程中首先是分别开辟了两个空间 并指向变量
#然后我们将b对应的值又再次指向了a 于是a b就同时指向了1 (可以理解为一个房间有两个门牌号)
#python有内存回收机制(当一个变量失去了他的变量名 他就会被删除掉)

a=1
a=2
#首先开辟了一个1并指向a
#然后开辟一个2并指向了a
#最后销毁掉1

3.字符串
字符串就是包裹在引号中的一段符号有如下三种表达方式

print('a')
print("b")
print('''c''')

它们三种表达效果是一样的 那么为什么会出现三种表达方式呢
我们通过以下的案例来理解

print('在苍茫的大海中,狂风卷集着‘乌云’')

SyntaxError: invalid syntax
#此时的python它无法去识别乌云所在的''和整个字符串的‘’
#于是我们通过“”中间套‘’就能够很好的进行区分
#‘’‘ ’‘’同理

字符串的分片和索引
字符串可以通过string[x]的方式进行索引
如:a_string=‘my name is balabala’

>>> a_string='my name is string'
>>> a_string[0]
'm'
>>> a_string[2]
' '
>>> a_string[6]
'e'

我们可以通过一个表格来理解这个索引

m

y

n

a

m

e

0

1

2

3

4

5

6

同样的 我们可以通过:来对字符串进行分片 如:

>>> a_string[0:6]
'my nam'

字符串的替换

a='这是一个苹果'
#怎么把这个字符串变成‘这是一个西瓜呢’
我们可以直接使用replace方法
b=a.replace(a[4:6],'西瓜')

如何理解这个replace方法 首先给一个字符串的替换位置 再给一个替换的受体

4.函数
如何去理解一个函数
函数其实就是一个比较固定的规则 而这个规则就是你人为的定制的
他的结构就是

def a_fuction(text):
	print(text)

这里的 def是关键字 告诉python我要开始定义变量啦
a_fuction是函数的名字
()指的是我们向函数中传入的一组关键字 这里的关键字可以为空
text指我们会向函数中传进的参数
print(text)为我们要实现的功能

>>> def a_fuction(text):
	print(text)
	
>>> a_fuction('hello')
hello
>>> a_fuction('number')
number
>>>

现阶段我们就先用print作为功能暂时放在这里
后面我们接触循环和判断语句就可以更加熟练的进行功能定制了

5.条件控制,循环和判断
在了解循环和判断前我们先来了解一个布尔值
布尔值只有两种 True /False
同样的在计算机世界中对应着1和0

>>> a=1
>>> a==3
False
>>> a==1
True

来 让我们理解一下这是怎么判断的
首先我们定义了一个变量
然后我们通过‘==’来判断
a等于3吗 计算机告诉我们 他不是
a等于1吗 计算机告诉我们 他是的

由此我们就产生了布尔值

比较运算符

比较运算符

意义

==

左右两边相等返回True

!=

左右两边不相等时返回True

>

左边大于右边的时候返回True

<

左边小于右边的时候返回True

<=

左边小于等于右边的时候返回True

>=

左边大于等于右边的时候返回True

/条件控制
条件控制其实就是if else的使用
用人类听的懂的话来说就是 如果怎么样就怎么样
if else有两种
他们分别是
if else
if elif … else

/循环
循环有两种 for循环和while循环
for循环结构很简单

for i in 集合:
	pass

人话就是 在集合里有一个i 然后i 每前进一位就把集合中的元素指向i 并从事后面的操作

>>> a=[0,1,2,3]
>>> for i in a:
	print(i+1)

	
1
2
3
4
>>>

牛逼的循环 嵌套循环

>>> a=[1,2,3,4,5]
>>> b=[1,2,3,4,5]
>>> for i in a:
	for x in b:
		print(i*x)

输出的就是1-5的乘法口诀表

/while循环
不同与for循环 while循环是采用真值作为运算的 也就是说只有在条件成立的时候 循环才能进行下去
他的写法是 
		 while 一个条件:
							做一件事
来看看例子|:
>>> a=3
>>> while a>0:
	print('这个数不是0')
	a=a-1

	
这个数不是0
这个数不是0
这个数不是0
>>>

每次循环的时候 程序都会反复的对条件进行判断,当得知我们的a 大于0时 程序就会进行下去 并在a 的基础上减1直到a 小于或者等于0为止

用一个小条件让while循环停下来

>>> count=0
>>> while True:
	print('我在跑啦')
	count=count+1
	if count ==5:
		print('结束啦')
		break

	
我在跑啦
我在跑啦
我在跑啦
我在跑啦
我在跑啦
结束啦
>>>

数据与结构
python有四种结构分别是
列表 字典 元组 集合
我们先来认识一下这四种数据结构
list =[0,1,2,3,4]
dict={a:1,b:2}
tuple=(1,2,3,4)
set={1,2,3,4}
这四种数据结构非常重要 我们一个一个来讲
列表 列表有如下几种特征
1.列表中的每一个元素都是可变的;
2.列表的元素是有序的,可以通过索引进行切片和查询
3.列表可以容纳任何对象

>>> a_list=[]
>>> a_list=[1,1.1,'word',print('hello'),True,[1,2],(1,2),{a:1}]
hello
>>> for i in a_list:
	print(i)

	
1
1.1
word
None
True
[1, 2]
(1, 2)
{0: 1}
>>>

就是这么牛批
列表能够进行增删改查
增 list.insert(位置,内容)
list.append(内容)直接加在最后面
删 list.remove(内容)通过关键字进行删除
del list[位置]
改 list[位置]=新内容
查 print(list[位置])

字典
字典和列表用的最多,字典的特征就是花括号和键值对,总结起来就是
1.字典中数据必须是以键值对的形式出现的
2.逻辑上讲,键是不能重复的,而值是可以重复的
3.字典的键不可以变而值可以变 值可以是任何对象

my_data={'name':'mei','age':21,'sex':'men'}

很简单对吗
让我们来康康字典的增删改查
增:

>>> my_data={'name':'mei','age':21,'sex':'men'}
>>> my_data['class']='5'
>>> print(my_data)
{'name': 'mei', 'age': 21, 'sex': 'men', 'class': '5'}
>>>

批量增加

>>> my_data.update({'a':1,'b':2})
>>> print(my_data)
{'name': 'mei', 'age': 21, 'sex': 'men', 'class': '5', 'a': 1, 'b': 2}
>>>

删除元素 del

>>> a={'q':1,'a':2}
>>> del a['a']
>>> print(a)
{'q': 1}
>>>

很离谱的是 字典的索引需要用字典中的键进行索引
同时字典也没有办法进行切片

元组和集合
元组和集合相对用的少 因为元组从建立之后就没办法进行更改,集合作用在我看来跟列表没什么区别(个人意见)
这里的元组是()集合是{}
不同于字典 集合中放置的不是键值对而是单个的元素
让我们来展示一下吧

>>> letters=('1',2,3,'4')#元组
>>> letters
('1', 2, 3, '4')
>>>
>>> jihe={1,2,3,4,5}#集合
>>> jihe.add(123)
>>> jihe
{1, 2, 3, 4, 5, 123}
>>> jihe.discard(4)
>>> jihe
{1, 2, 3, 5, 123}
>>>


我们使用class来定义一个类 就像是创建函数的时候使用def来定义一个函数一样简单
怎么去理解一个类 类应当是包含一类相似特征的集合
就像是鸟类 他们都会飞 鱼类他们都会游泳
对于代码来说 也是这样

>>> class bird:
	yumao='red'
	jiaoshneg='尖锐'
>>> bird1=(bird)
>>> bird2=(bird)
>>> bird1.yumao
'red'
>>> bird2.yumao
'red'
>>>

我们首先定义了一类鸟的特征 比如叫声很大 羽毛是红色的
然后我们new了两只鸟 鸟1和鸟2
这时我们的两只鸟都拥有了定义的类的特征了
都有红色的羽毛,尖锐的叫声
这两只鸟我们就称之为实例化的对象 他们的羽毛颜色等就被称之为实例化的属性

难道类就这点功能吗 非也非也
让我们来看看牛逼的
类的方法

>>> class bird:
	bird_colour='red'
	def bird_say():
		print('我是一只小鸟')

		
>>> bird1=bird()
>>> bird.bird_colour
'red'
>>> bird.bird_say()
我是一只小鸟
>>>

好了 一只聪明的小鸟诞生了
这里bird_say函数就是类方法的调用