Python自学万文字,学习框架+思维整理,入门就是这么简单
Posted 世上本无鬼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python自学万文字,学习框架+思维整理,入门就是这么简单相关的知识,希望对你有一定的参考价值。
你们的三连(点赞,收藏,评论)是我持续输出的动力,感谢。
在兴趣中学习,效益超乎想象,①有趣的源码与学习经验,②工具安装包,③专业解答,④学习资料共享
入门Python
一、python基础知识
1.第一个Python程序
1.1pycharm介绍
PyCharm 是一种 PythonIDE,附带一辈可以帮助用户在使用 Python 语言开发时提高其效率的工具,例如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,用于支持Django框架下的专业Web开发。
使用pycharm写出第一个程序
1)打开 Pycharm,选择Create New Project
,创建一个新项目创建项目
2)选择Pure Python
表示创建一个纯 Python 程序项目,Location
表示该项目保存的路径,Project Interpreter
表示使用的 Python 解释器版本,最后点击Create
创建项目。创建文件第二步
3)右击项目,选择New
,再选择Python File
创建文件第三步
4)在OK
创建一个文本的文本对话框中输入的文件名Hello,点击,显示Python程序的文本文件文件后缀名默认.py创建文件第四步
5)输入以下代码,并右击空白处,选择Run
运行,表示打印一个字符串“Hello World!”。
print(“Hello World!”)
6)运行成功后,Pycharm Console 窗口将显示我们的输出结果。
2.注释
2.1注释的作用
通过用自己的语言,在对部分代码进行认知说明,这就是语音的作用,能够放大膨胀程序的神话性
2.2注释的分类
单行注释:
以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用
#这是python代码的注释
print ( "hello world" )
多行注释:
以""""""包裹或者’’’’’’'包裹,包裹中的内容就是注释部分
'''这是多行注释'''
"""这也是多行注释"""
注意
多行对方的符号,必须一样不能要么都是单引号,要么都是单引号,不能混用
3.变量和数据类型
1)什么是变量?
变量是事件数据值的,程序就是处理数据的,而变量就是存储数据的
2)数据类型
为了更充分地利用内存空间以及不断的管理内存,变量是有不同的类型的。
3)有哪些变量的类型呢?
在python中,只要定义了一个变量,它就有数据,那么它的类型就已经确定了,不需要我们开发者主动去说明它的类型,系统会自动气泡
可以使用type(变量的名字),来查看变量的类型
4.Python基本数据类型
在 Python 中的数有四种,分别是整数(int)、长整数(long)、浮点数(float)、复数(complex)。
4.1整数
像 6 这样的数字就是整数,不带小数点的,而长整数只不过代表的是比较大一点的整数,现在 python3 中的整数(int)已经不限制数的大小限制了,所以整数类型也包括长整数。
我们可以通过 Python 交互式解释器来运算整数:
这里的 「6+6」没什么好说的吧,而 「6//2」就是6整除2的意思了,「1%2」的意思是说1除以2的余数,「%」有个专业名词叫做取余或者取模。而「2**3」就是2的三次方的意思。
4.2浮点数
但是如果你试试 「1/2」,这时候你会发现结果有小数点:
在这里的 「/」是除的意思,但是不会整除,你可以看到每次的结果都会有小数点。而这些像 「0.5」,「1.0」带有小数点的数我们就叫做浮点数。
4.3复数
Python中的复数由实数部分和虚数部分组成。虚部的后缀为「j」。
例如:4+5j 就是一个复数,实数部分为 4.0,虚数部分为 5.0。
你可以把复数理解成为一个平面的一个点,例如上面这个例子你可以把它理解为平面上的点(4,5)。
5.各种符号的意义及用法
我们小时候,老师都教过我们 1+1=2 ,这个 「1+1」 就是表达式, 「+」 就是运算符。
咱们接下来就来了解一下,在 python 中,那些运算符是什么意思,怎么用? 相信看完,你就能够明白了。
5.1加减乘除(±/*)
对于 ±*/ 我们都知道它们是什么含义了吧,就算你的数学是体育老师教的,你也会懂加减乘除吧。
不过有两个小细节值得你去注意,就是字符串之间的相加和相乘:
字符串之间的相加会被"拼接"起来,而字符串和数字相乘就会重复多次相同的字符串。
其它的大于、小于、大于等于、小于等于就不说了,因为我们小学老师都跟我们说过了。接下来说几个比较少见的符号。
5.2幂(**)
幂就是以前我们学数学的时候老师讲的什么什么几次方,别一看到幂就想到杨幂。
用符号 **
表示, 比如 2**3 = 8
。
5.3整除(//)
我们知道 /
是除的意思,你知道 6/3 等于多少么?你可能会觉得在侮辱你的智商对不对,不是 2 么? 在 python 中得出的结果是 2.0 , 也就是它返回的是浮点数。 那么我们只想得到整数部分怎么玩呢?
用 //
这个 : 6//3 = 2
5.4取模(%)
取模的意思不是让你去获取个模特,是得到除法的余数,比如 8%5 = 3
,因为 8/5 = 1余3
。
5.5左移(<<)和右移(>>)
移的意思就是把一个数的二进制移动多少个位。
比如 2 << 2 = 8 。
首先 2 的 二进制 是 0b00000010 ,然后将它左移2位(虚位补0)就变成这样: 0b00001000 ,它对应的十进制就是 8 。
同样的道理:
8 >> 2 的意思就是将 8 的二进制向右移动2位:
0b00001000 右移动2位:0b00000010 也就是对应十进制的 2。
那么下次有人问你2*8怎么样写代码比较高效,你就直接甩给它: 2<<3 就好了。
5.6(&)
记住一句话:“同真与真”,什么意思呢? 比如 1&1=1,1&0=0,
1就是真,0就是假。也就是只有 1&1=1,其它的都等于0。
那么 2 & 3 怎么算?
先将它们转化为二进制:
2对应的二进制 : 0b00000010
3对应的二进制 : 0b00000011
那么从右往左: 0&1=0 ,1&1=1,0&0=0,所以结果为
0b00000010,转化为十进制就是2,所以 2&3=2。
5.7(|)
记住一句话:“同假或假”,什么意思呢? 比如 1|1=1,0|0=0,
1就是真,0就是假。也就是只有 0|0=0,其它的都等于1。
那么 2 | 3 怎么算?
先将它们转化为二进制:
2对应的二进制 : 0b00000010
3对应的二进制 : 0b00000011
那么从右往左: 0|1=1 ,1&1=1,0&0=0,所以结果为
0b00000011,转化为十进制就是3,所以 2|3=3。
5.8异或(^)
相同者假,不同者真,什么意思呢?就是 1^1=0, 1^0=1。
那么 2^3 怎么算?
先将它们转化为二进制:
2对应的二进制 : 0b00000010
3对应的二进制 : 0b00000011
那么从右往左: 0^1=1 ,1^1=0,0&0=0,所以结果为
0b00000001,转化为十进制就是1,所以 2^3=1。
5.9翻转(~)
x的按位翻转就是是-(x+1)。
那么 ~2 怎么算?
~2 = -(2+1) ; 所以答案就是-3。
ok,以上,其实没必要去记住,了解一下就这些符号是什么意思,怎么算的就好了。
二、Python中的循环语句
2.while循环
while 活着:
每天做着一样的事情。
这样写的意思就是,只要你活着,就一直不断的执行while下面的语句。
我们可以来写一个抛硬币的 python 程序,我们事先定义好硬币的正反面,然后让用户猜,如果用户猜对了就奖励一个吻,猜错了就继续猜,直到让他猜中为止。打开我们的 IDLE,代码敲起来:
首先定义一个变量,我们的值定义为正面:
coin = "正面"
接着定义一个 flag :
flag = True
然后我们写一个循环:
while flag :
guess = input("请猜一下是正面还是反面:")
if(guess == "反面") :
print("你猜错了,继续猜")
elif(guess == "正面") :
print("恭喜你猜对了,奖励你一个吻")
flag = False
执行:
解释一下:当 while 发现 flag 为 true 的时候,就会一次又一次的执行执行 while 下面的一句,直到我们猜中之后,我们就将flag 这个变量改为 false ,while 发现为 false 的时候就不往下循环了。
3.while循环的应用
1.计算1~100的累积和(包含1和100)
i = 1
sum = 0
while i <= 100:
sum += i
i+=1
print(sum)
结果:
5050
4.for循环
while 可以做到在条件为真的时候反复的执行,不过有时候我们需要在特定范围循环,比如说我们要在第一天到第五天每天做运动一次,那么这时候用 for 就再适合不过了:
days = [1,2,3,4,5]
for day in days :
print("第" + str(day) + "天做运动")
day就是1,第二次day就是2,它就这样一直循环下去,没有一点念想。
5.终止循环break
有一天你突然发现,我不能再这么下去了,不能再重复的过这样的日子了,得有点改变,跳出这个重复的怪圈,那么对于 Python 来说,用break:
while 活着:
重复的过日子。
if(醒悟):
break
通过 break 呢,就可以跳出这个循环了。
6.break和continue循环
6.1break
break 会立即终止循环,跳转到循环之后开始执行
结构:
while 条件:
if 条件:
break # 跳出循环
举例:
i = 10
while i > 0:
print("妈,还要我刷啊~~~~~~~~~")
if i == 5:
print('好了,不用刷了')
break
print("正在刷 %d 个碗" % i)
i -= 1
print('程序结束')
运行结果:
妈,还要我刷啊~~~~~~~~~
正在刷 10 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 9 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 8 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 7 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 6 个碗
妈,还要我刷啊~~~~~~~~~
好了,不用刷了
程序结束
6.2continue
continue 会立即结束当前这一次循环,跳转到下一轮循环的条件判断
结构:
i = 10
while i > 0:
print("妈,还要我刷啊~~~~~~~~~")
if i == 5:
print('好了,不用刷了')
i -= 1 # continue 之前要注意修改 i 的值,否则容易导致死循环
continue
print("正在刷 %d 个碗" % i)
i -= 1
print('程序结束')
运行结果:
妈,还要我刷啊~~~~~~~~~
正在刷 10 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 9 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 8 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 7 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 6 个碗
妈,还要我刷啊~~~~~~~~~
好了,不用刷了
妈,还要我刷啊~~~~~~~~~
正在刷 4 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 3 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 2 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 1 个碗
程序结束
注意点:
- break/continue只能用在循环中,除此以外不能单独使用
- break/continue在嵌套循环中,只对最近的一层循环起作用
7.数据类型转换
7.1常用的数据类型转换
举例:
>>> # int(): 将数据转换为 int 类型
...
>>> str1 = "10"
>>> # int() 默认按10进制转换后显示
... num1 = int(str1)
>>>
>>> # int() 处理浮点数,只留下整数部分,舍弃小数部分(并不是四舍五入操作)
... num2 = int(3.74)
>>> print(num2)
3
>>>
>>> """
... num1 = int(str1, 8) # 第二个参数为8,表示按8进制转换后显示,结果为 8
... num1 = int(str1, 16) # # 第二个参数为16,表示按16进制转换后显示,结果为 16
... #01 02 03 04 05 06 07 10
... #01 02 ... 0B 0C 0D 0E 0F 10
... print(num1)
... """
>>>
>>> # float() 将数据转化为浮点数
... str2 = "3.14"
>>> f1 = float(str2)
>>> print(type(f1))
<class 'float'>
>>>
>>> f2 = float(10)
>>> print(f2)
10.0
>>>
>>> # complex() 创建复数: 第一个参数是复数的实部,第二个参数是复数的虚部
... c1 = 10 + 4j
>>> c2 = complex(10, 4)
>>>
>>> print(c1)
(10+4j)
>>> print(c2) # 等同与c1
(10+4j)
>>>
>>> # str() : 转换为 字符串类型
... num1 = 10
>>> f1 = 3.14
>>>
>>> print(type(str(num1)))
<class 'str'>
>>> print(type(str(f1)))
<class 'str'>
>>>
>>> # repr(): 转换为表达式字符串
... num1 = 10
>>> print(type(repr(num1)))
<class 'str'>
>>>
>>>
>>> # eval(): 将字符串形式的数据,转换为原本的类型
... str1 = "3.14"
>>> print(type(eval(str1)))
<class 'float'>
>>>
>>> str2 = "[10, 20, 30]"
>>> l = eval(str2)
>>> print(type(l))
<class 'list'>
>>>
>>>
>>> # chr: 将一个整数转换为对应的 Unicode 字符
... s = chr(1065)
>>> print(s)
Щ
>>>
>>> # ord :将一个字符转换为对应的字符编码数字
... n = ord("A")
>>> print(n)
65
>>>
>>> # bin: 将一个整数转换为二进制
... print(bin(1024)) # 0b 开头表示二进制数
0b10000000000
>>>
>>> # oct:将一个整数转换为八进制
... print(oct(1024)) # 0o 开头表示八进制数
0o2000
>>>
>>> # hex: 将一个整数转换为十六进制
... print(hex(1024)) # 0x 开头表示十六进制
0x400
>>>
附录:常用字符与ASCII码对照表
三、列表
1)什么是列表?
列表是用来存储大量数据的容器
2)列表的格式
[value1,value2,value3,...]
注意:python列表中存储的数据可以是不同的数据类型
1.列表的常见操作
1.1增加元素
append
结构:
mylist.append(values)
举例:
#定义变量A,默认有3个元素
A = ['xiaoWang','xiaoZhang','xiaoHua']
print("-----添加之前,列表A的数据-----")
for tempName in A:
print(tempName)
#提示、并添加元素
temp = input('请输入要添加的学生姓名:')
A.append(temp)
print("-----添加之后,列表A的数据-----")
for tempName in A:
print(tempName)
运行结果
-----添加之前,列表A的数据-----
xiaoWang
xiaoZhang
xiaoHua
请输入要添加的学生姓名:哈哈
-----添加之后,列表A的数据-----
xiaoWang
xiaoZhang
xiaoHua
哈哈
insert(向列表中指定位置插入数据)
结构:
mylist.insert(index, object) 在指定位置index前插入元素object
举例:
>>> a = [0, 1, 2]
>>> a.insert(1, 3)
>>> a
[0, 3, 1, 2]
extend(通过extend可以将另一个集合中的元素逐一添加到列表中)
结构:
myslist.extend(index,list)在指定位置index前插入列表
举例:
>>> a = [1, 2]
>>> b = [3, 4]
>>> a.append(b)
>>> a
[1, 2, [3, 4]]
>>> a.extend(b)
>>> a
[1, 2, [3, 4], 3, 4]
1.2删除元素
del(根据下标进行删除)
结构:
del mylist(index) # 删除mylist中index位置的元素
举例:
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
print('------删除之前------')
for tempName in movieName:
print(tempName)
del movieName[2]
print('------删除之后------')
初次接触python,如何系统自学