先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
-
- 1.循环类型
-
2.控制条件
-
六、函数
-
- 1.函数的组成部分
-
2.函数声明、定义
-
3.函数的嵌套、递归、重载、引用
-
- ①函数嵌套
-
②函数递归【斐波那契数列】
-
③函数重载
-
④函数引用
-
总结
-
- 这些仅仅是一些C++的基本语法,面向对象编程请关注本专栏后续博文。如有疑问请在评论区留言。
-
一心向学 三┏ ( ˘ω˘ )┛ 早睡早起。
====================================================================
这篇文章是C++从入门到精通的第一篇文章,旨在带领大家入门C++这么优秀的语言,会介绍到C++的发展历程,基础语法,类型,函数,类等。
============================================================================
C++ 是一种高级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于
多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。以下是各个版本的一些特性。
C++11版本
发行于2011年此时的C++新增了以下特性
auto关键字
decltype关键字
nullptr字面值
constexpr关键字
for(declaration : expression)
Lambda表达式
initializer_list
标准库bind函数
智能指针shared_ptr,unique_ptr
右值引用&&
STL容器
C++14版本
发行于2014年此时的C++新增了以下特性
拓展了lambda表达式,更加泛型:支持auto
拓展了类型推导至任意函数:C11只支持lambda返回类型的auto
弃用关键字 [[deprecated]]
C++17版本
发行于2017年此时的C++新增了以下特性
拓展了constexpr至switch if等:C++11的constexpr函数只能包含一个表达式
typename 嵌套
inline 内联变量
模板参数推导
元组类 std::tuple:std::pair实现两个元素的组合,它实现多个
类模板std::variant表示一个类型安全的联合体。
引用包装器 std::reference_wrapper
变长参数模板
结构化绑定(函数多值返回时用{}合成struct)
非类型模板参数可传入类的静态成员
在if和switch中可进行初始化
初始化(如struct)对象时,可用花括号进行对其成员进行赋值
简化多层命名空间的写法
lambda表达式可捕获*this的值,但this及其成员为只读
十六进制的单精度浮点数
继承与改写构造函数
当模板参数为非类型时,可用auto自动推导类型
判断有没有包含某文件__has_include
[[fallthrough]]用于switch语句块内,表示会执行下一个case或default
[[nodiscard]]表示函数的返回值没有被接收,在编译时会出现警告。
[[maybe_unused]]即便没使用也不警告
C++20版本
发行于2020年此时的C++新增了以下特性
范围库(Ranges Library)
协程(Coroutines)
模块(modules)
-
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
-
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
-
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
-
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
-
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:封装、抽象、继承、多态
-
C++三个重要组成部分
-
核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
-
C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
-
标准模板库(STL),提供了大量的方法,用于操作数据结构等。
========================================================================
代码如下:
#include
using namespace std;
// main() 是程序的执行入口
int main()
{
cout << “Hello World”;
return 0;
}
解读:
第一行 C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件 。引入的头文件中包含我们需要的函数或类,本例只引入了标准输入输出流,我们可以使用iostream在终端窗口进行交互。
下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。有了这个我们使用cin、cout的时候不用在前面加std::了
下一行 // main() 是程序执行入口 是一个单行注释。单行注释以 // 开头,在行末结束。还有一个多行注释/**/可以将内容加进两星号之间。
下一行 int main() 是主函数,程序从这里开始执行。
下一行 cout << “Hello World”; 会在屏幕上显示消息 “Hello World”。
下一行 return 0; 终止 main( )函数,并向调用进程返回值 0。这里返回值可以根据自己的意向进行定制,但要与函数声明的返回值类型保持一致。
| 类型 | 整型 | 单浮点型 | 双浮点型 | 布尔型 | 字符型 | 空类型 | 字符串 |
| — | — | — | — | — | — | — | — |
| 关键字 | int | float | double | bool | char | void | string |
变量声明代码如下:
include
using namespace std;
int main(){
int a;
cin>>a;
cout<<a;
return 0;
}
变量重命名:可以使用typedef对已有的变量进行起别名
typedef type newname;
eg:
typedef int shuzi;
shuzi a;
a=10;
此时a为int型,数值为10编译语法上完全合法。
C++ 中的左值和右值
左值(lvalue):指向内存位置的表达式被称为左值表达式。
左值可以出现在赋值号的左边或右边。
右值(rvalue):术语右值指的是存储在内存中某些地址的数值。
右值是不能对其进行赋值的表达式,也就是说,
右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
在函数或一个代码块内部声明的变量,称为局部变量。
当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。
局部变量都有局限性,只能在指定的区域使用,使用完毕后声明周期随着
局部变动而变动。
在函数参数的定义中声明的变量,称为形式参数。
只针对函数内部有效。
在所有函数外部声明的变量,称为全局变量。
全局变量的值在程序的整个生命周期内都是有效的。
全局变量可以被任何函数访问。也就是说,全局变
量一旦声明,在整个程序中都是可用的。
局部变量遵循就近原则
不同区域可以定义同名局部变量,如果某区域属于共有区域并且使用了同名局部变量
那么哪个变量离其最近,就会使用哪个变量。
| 运算符 | ----------------描述---------------- |
| — | — |
| + | 把两个操作数相加 |
| - | 从第一个操作数中减去第二个操作数 |
| * | 把两个操作数相乘 |
| / | 分子除以分母 |
| % | 取模运算 |
| ++ | 自增运算 |
| – | 自减运算 |
| && | 称为逻辑与运算符。如果两个操作数都 true,则条件为 true。 |
| || | 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。 |
| ! | 称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。 |
| == | 检查两个操作数的值是否相等,如果相等则条件为真。 |
| != | 检查两个操作数的值是否相等,如果不相等则条件为真 |
| > | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 |
======================================================================
type arrayName [ arraySize ];
eg:
double balance[10];
直接初始化
固定数组大小
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
随机数组大小【数组大小看值的个数】
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
固定数组赋相同初始值
balance[4] = 50.0;
将数组内的元素通过索引直接赋值给同类型的变量
double salary = balance[9];
=======================================================================
char site[7] = {‘R’, ‘U’, ‘N’, ‘O’, ‘O’, ‘B’, ‘\0’};
char site[] = “RUNOOB”;
头文件 string
string 字符串名 =“Hello World”;
可以直接使用+进行字符串拼接。有一系列成熟的字符串处理方法。
=============================================================================
| 语句 | 描述 |
| — | — |
| if | 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 |
| if…else if…else … | 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 |
| switch…case …dafault… | 一个 switch 语句允许测试一个变量等于多个值时的情况 |
| 条件? 结果1 : 结果2 | 三目运算符,前面条件满足执行结果1,否则执行结果2 |
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
n常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-T3VvczvU-1713453151734)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!