本人略有一丝c++基础,所以在刚开始学习派森的时候还是挺得心应手的,不过后来。。。。。。说多了都是泪,5555~
(第一次写博客,主要是分享自己学习派森的感受,有什么不足还望指出,感谢!)
一. 首先是pycharm的安装
因为群里学长发放的压缩包,直接就解压缩按照教程来安装就行,本来一切顺利,直到遇见了下载解释器的环节,我不清楚是什么原因,一直下载不下来网上的3.7版本,后来是b站拯救了我,在这里附上链接黑马程序员全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程_哔哩哔哩_bilibili
这里的教程也是学长推荐的,讲得也很好!
二.接着是认识变量,数据类型,以及debug工具使用
常量:不变的量
直接在程序中出现的数据(字面量)
将一个变量通过一些手段变成常量 限制变量的值不可修改 在Python不存在第二种
变量:变化的量
变量的本质就是进程空间中一个临时的存储空间,并且该临时存储空间有其自己的物理内存地址 地址是由计算机随机分配的
因为变量的地址是唯一的 不应该通过该变量的地址去操作数据 所以可以给变量起别名 叫变量名
系统底层会自动为变量名称和针对的变量的地址做一个表格(在C语言中变量的地址就是指针)
变量空间中永远不会存变量本身存的是数据的地址
此处内容借鉴((17条消息) Python的学习总结_rgod1的博客-CSDN博客_python 学习总结)
三.接着学习了输入输出和运算符
print("你好,派森")
a=print(input("请输入"))
print输出语句,input输入
python的内置数据类型
1.整型 int
2.浮点型 float
3.字符串 str
4.布尔类型 bool
python的运算符
算数运算符(+ - * / // ** %)
+两边都是字符串 则+为连接符
%取余 模运算
/ 整数除
**幂一返回x的y次幂
//取整除返回商的整数部分
python的数据类型的转换
str()变成字符串型
int()变成整数型
float变成浮点型
此处借鉴:https://blog.csdn.net/rgod1/article/details/103443651
四.接着是条件语句与循环语句
这里让我再次体会到了派森与c++的区别,以及派森对于缩进的严谨性,就因为一个缩进。。。一个题检查半天,浪费了好多时间,直接哭死。
1. if-else
if 要判断的条件:
条件成立的时候做的事情
else:
条件不成立的时候做的事情
2. if-elif-else
if 要判断的条件:
条件成立的时候做的事情
elif 条件2:
...
elif 条件3:
...
else:
条件不成立的时候做的事情
elif和else都必须和if一起使用,不能单独使用
3. if嵌套
if 要判断的条件:
条件成立的时候做的事情
if 要判断的条件:
条件成立的时候做的事情
else:
条件不成立的时候做的事情
else:
条件不成立的时候做的事情
4. if逻辑运算符
and
条件1 and 条件2
两个条件都满足,就返回True
两个条件有一个不满足,返回False
or
条件1 or 条件2
两个条件只要有一个满足,就返回True
两个条件都不满足,返回False
5. for循环语法
for 变量 in range(x):
6. break、continue和exit在for中的应用
break:跳出整个循环,不会再执行循环后面的内容
continue:跳出本次循环,continue后面的代码不再执行,但是循环依然继续
exit():结束程序的运行
7. while循环的语法
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
8. while死循环
while True:
要做的事情
五.之后是字符串,列表,元组,字典,集合以及公共操作方法的学习
附上一篇感觉不错的学习博客,总结了很多的知识,在学习这些东西的时候,同时学习了好多的函数操作,真的。。。挺难全部记下来,这个时候是pycharm拯救了我!!!自动出现的函数拯救了我!这里的学习感觉还不是很难,也是很好理解,总体来说感觉我还能行(错觉)。
(17条消息) Python基础篇(三)-- 列表、元组、字典、集合、字符串_长路漫漫2021的博客-CSDN博客_字典元组列表字符串
六.函数与类的学习
这个地方和c++还是有很多相似之处的,有了一丝丝基础,这个地方的学习并不算很困难,但是。。。从这里开始,我就不是我了,原本一节一节网课听的我,开始了3倍速,疯狂跳集,考试复习周的时间真的很紧张,也是劝一下大学尤其大一的同学,千万不要参加太多社团之类的,真的。。。忙不过来,选择自己最感兴趣的就好,比如派森!
黑马程序员全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程_哔哩哔哩_bilibili
这里的课程讲真挺好的,非常适合小白,,,但是如果和我一样有点点c++基础的,部分内容3倍速没问题!
七.错误和异常
python中有两类错误:语法错误(syntax errors)和异常(exceptions)。
1、语法错误
语法错误是“真正的错误”,如果使用IDE的话(比如pyChrome),IDE中一般会有提示,即使没看到提示,运行时也会报SyntaxError错误,比如:
SyntaxError: unexpected EOF while parsing
2、异常
python中的异常体系没有Java中那么复杂(Java中分运行时异常和检查异常),python将没有语法错误、但是运行时监测到的错误称为“异常”。比如:
>>> 10 * (1/0)
Traceback (most recent call last):
File "", line 1, in ?
ZeroDivisionError: int division or modulo by zero
>>> 4 + spam*3
Traceback (most recent call last):
File "", line 1, in ?
NameError: name 'spam' is not defined
>>> '2' + 2
Traceback (most recent call last):
File "", line 1, in ?
TypeError: Can't convert 'int' object to str implicitly
ZeroDivisionError、NameError、TypeError都是Python中常见的异常。
2.1、异常处理
和Java中的异常处理机制(try...catch...finally)类似,python同样可以通过(try...except...finally)对异常进行处理。例如:
import sys
try:
f = open("myfile.txt")
s = f.readline()
i = int(s.strip())
# 可以用as为异常实例指定一个别名
except OSError as err:
print("OS error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
# 可以不指定异常,这样的话会捕捉所有异常
except :
print("Unexpected error:", sys.exc_info()[0])
pass
# 和java相同,在任何情况下,finally都会被执行
finally :
f.close()
由于和Java中的异常处理机制类似,这里只侧重于不同点:
python中的except后可以跟一个else子句,当 try 语句没有抛出异常时,需要执行一些代码,可以使用这个子句。
for arg in sys.argv[1:]:
try:
f = open(arg, 'r')
except IOError:
print('cannot open', arg)
# 当没有捕获到IOError时调用
else:
print(arg, 'has', len(f.readlines()), 'lines')
f.close()
这样做的好处是可以防止“误捕获”异常。
和Java中相同,finally字句一般用于释放资源,并且如果出现了不在except范围内的异常,该异常会在finally执行完毕后抛出。不同之处在于,python提供了另一种释放资源的方式:使用with语句(注意并不是所有对象都适用)。with...as...修饰的对象在使用完毕后总会自动被清理。
with open("myfile.txt") as f:
for line in f:
print(line)
2.2、抛出异常
raise类似于java中的throw,用于主动抛出异常。例如:
# 抛出带参数的异常
raise NameError('haha')
raise后不跟参数,表示“向外继续抛出当前的异常”(相当于Java中的throws),例如:
try:
raise KeyboardInterrupt
except NameError:
print('a error, but I throw it outside')
raise
2.3、自定义异常
python中的异常都是Exception的派生类,可以通过继承Exception类来自定义异常。和Java中异常一般以Exception结尾不同,python中的异常一般以Error结尾,例如:
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
try:
raise MyError('a error')
except MyError as e:
print(e)
此处借鉴:https://blog.csdn.net/weixin_36398572/article/details/114942485



