Python训练营Task1 Python入门(上)学习笔记
2021/4/24 1:25:08
本文主要是介绍Python训练营Task1 Python入门(上)学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
因为金融分析大赛的难度对于我们这种纯新手来说,要求有点高,所以我们整个队决定,将我们的学习任务改为python学习。
学习知识点概要
在Task1里面,是Python的入门,主要讲了变量、运算符和数据类型;位运算以及几种基础语句,例如条件语句、循环语句;还有在写程序过程中,编译运行时可能出现的异常处理。
学习内容
1、变量、运算符与数据类型
注释:有单行注释(用#开头),作用与整行;有多行注释,用(’’’)或(""")括住注释内容
运算符:和C语言的基本相似,但有些许不同,例如在python中除法(/)是直接将浮点数值求出来;
而(//)才是对应着C语言中的(/);还有python有幂的求法(**)
比较运算符:这个和C的相同,可以掠过学习
逻辑运算符:与C语言的&、||、!相似
位运算符:这个有点陌生:
操作符 名称 示例
~ 按位取反 ~4
& 按位与 4 & 5
按位或
^ 按位异或 4 ^ 5
<< 左移 4 << 2 >>右移 4 >> 2
三元运算符:
x, y = 4, 5 if x < y: small = x else: small = y print(small) # 4
其他运算符:
操作符 名称 示例
in 存在 ‘A’ in [‘A’, ‘B’, ‘C’]
not in 不存在 ‘h’ not in [‘A’, ‘B’, ‘C’]
is 是 “hello” is “hello”
not is 不是 “hello” is not “hello”
例子:
letters = ['A', 'B', 'C'] if 'A' in letters: print('A' + ' exists') if 'h' not in letters: print('h' + ' not exists') # A exists # h not exists
变量与赋值:
与C语言相似
数据类型与转换:
Python 里面万物皆对象(object),整型也不例外,只要是对象,就有相应的属性 (attributes) 和方法(methods)。
2、位运算
与我们现学课程C++基本相同。仅记录重要内容
利用位运算实现快速计算
通过 <<,>> 快速计算2的倍数问题。
n << 1 -> 计算 n2
n >> 1 -> 计算 n/2,负奇数的运算不可用
n << m -> 计算 n(2^m),即乘以 2 的 m 次方
n >> m -> 计算 n/(2^m),即除以 2 的 m 次方
1 << n -> 2^n
通过 ^ 快速交换两个整数。 通过 ^ 快速交换两个整数。
a ^= b
b ^= a
a ^= b
通过 a & (-a) 快速获取a的最后为 1 位置的整数。
00 00 01 01 -> 5
&
11 11 10 11 -> -5
00 00 00 01 -> 1
00 00 11 10 -> 14
&
11 11 00 10 -> -14
00 00 00 10 -> 2
3、条件语句
有if语句、if-else语句、if-else-else语句,这些与C相似。
而assert 关键词为新基础内容:
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
例子:
my_list = ['lsgogroup'] my_list.pop(0) assert len(my_list) > 0 # AssertionError
循环语句:
有while语句、while-else语句、for语句、for-else语句
这些仅记录用法
While:
count = 0 while count < 3: temp = input("猜一猜小姐姐想的是哪个数字?") guess = int(temp) if guess > 8: print("大了,大了") else: if guess == 8: print("你太了解小姐姐的心思了!") print("哼,猜对也没有奖励!") count = 3 else: print("小了,小了") count = count + 1 print("游戏结束,不玩儿啦!")
while - else 循环:
count = 0 while count < 5: print("%d is less than 5" % count) count = count + 1 else: print("%d is not less than 5" % count) # 0 is less than 5 # 1 is less than 5 # 2 is less than 5 # 3 is less than 5 # 4 is less than 5 # 5 is not less than 5
for 循环:
for i in 'ILoveLSGO': print(i, end=' ') # 不换行输出 # I L o v e L S G O
for - else 循环:
for num in range(10, 20): # 迭代 10 到 20 之间的数字 for i in range(2, num): # 根据因子迭代 if num % i == 0: # 确定第一个因子 j = num / i # 计算第二个因子 print('%d 等于 %d * %d' % (num, i, j)) break # 跳出当前循环 else: # 循环的 else 部分 print(num, '是一个质数') # 10 等于 2 * 5 # 11 是一个质数 # 12 等于 2 * 6 # 13 是一个质数 # 14 等于 2 * 7 # 15 等于 3 * 5 # 16 等于 2 * 8 # 17 是一个质数 # 18 等于 2 * 9 # 19 是一个质数
而range()函数为新学习内容:
range([start,] stop[, step=1])
这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1 表示第三个参数的默认值是1。
range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。
例子:
for i in range(2, 9): # 不包含9 print(i) # 2 # 3 # 4 # 5 # 6 # 7 # 8
enumerate()函数
enumerate(sequence, [start=0])
sequence:一个序列、迭代器或其他支持迭代对象。
start:下标起始位置。
返回 enumerate(枚举) 对象
例子:
seasons = ['Spring', 'Summer', 'Fall', 'Winter'] lst = list(enumerate(seasons)) print(lst) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] lst = list(enumerate(seasons, start=1)) # 下标从 1 开始 print(lst) # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
break、continue、pass与C语言相似
异常处理:
Python 标准异常总结¶
BaseException:所有异常的 基类
Exception:常规异常的 基类
StandardError:所有的内建标准异常的基类
ArithmeticError:所有数值计算异常的基类
FloatingPointError:浮点计算异常
OverflowError:数值运算超出最大限制
ZeroDivisionError:除数为零
AssertionError:断言语句(assert)失败
AttributeError:尝试访问未知的对象属性
EOFError:没有内建输入,到达EOF标记
EnvironmentError:操作系统异常的基类
IOError:输入/输出操作失败
OSError:操作系统产生的异常(例如打开一个不存在的文件)
WindowsError:系统调用失败
ImportError:导入模块失败的时候
KeyboardInterrupt:用户中断执行
LookupError:无效数据查询的基类
IndexError:索引超出序列的范围
KeyError:字典中查找一个不存在的关键字
MemoryError:内存溢出(可通过删除对象释放内存)
NameError:尝试访问一个不存在的变量
UnboundLocalError:访问未初始化的本地变量
ReferenceError:弱引用试图访问已经垃圾回收了的对象
RuntimeError:一般的运行时异常
NotImplementedError:尚未实现的方法
SyntaxError:语法错误导致的异常
IndentationError:缩进错误导致的异常
TabError:Tab和空格混用
SystemError:一般的解释器系统异常
TypeError:不同类型间的无效操作
ValueError:传入无效的参数
UnicodeError:Unicode相关的异常
UnicodeDecodeError:Unicode解码时的异常
UnicodeEncodeError:Unicode编码错误导致的异常
UnicodeTranslateError:Unicode转换错误导致的异常
学习问题与解答
因为之前从来没有学习过python语法,但学过C语言,而这些语言知识基本上都可以拿来融会贯通,所以入门还是没有那么困难.
但是因为是接触的一门新语言,许多语法知识还是不懂,所以还是需要多学习多看。为了更下深入的学习,以及理解代码的内涵,我选择观看更多的学习视频。例如:
Python语言程序设计
Python数据分析与展示
学习思考与总结
从那个金融分析转到Python语言学习,感觉学习的压力降下来了,也更容易入门了,在学习Python过程中,我发现了语言学习的融汇贯通性,因为之前学过C语言;而专业课程中又有C++程序设计,所以上手一门新的语言感觉不是特别难入手。
但学习新语言也有不适应的地方,就是限制于原有的语法方式的方式,总是会联想到原来学到的语言,对于新语言的语法又不熟悉,总是得去找一些网络上额内容来补课。但是我相信,经过这个训练营的学习,我可能很快的上手并且会运用到建模和解决其他问题上。
这篇关于Python训练营Task1 Python入门(上)学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门