当前位置: 首页 > news >正文

新手学Python, 如何从入门到入土变为从入门到快速上车?

导读:本文旨在提高新手对Python的了解与兴趣,专门讲解一些平常在敲代码时,新手容易遇到的问题,规避一些容易陷入的思维误区。

作者:王皓

来源:大数据DT(ID:hzdashuju)

00 人生苦短,我学Python——Python除了不会生孩子,什么都会?

答案是当然!

比如:

下视频?我用Python;

玩跳一跳?我用Python跳到4999分;

抢红包?没错,还是Python;

就算是数瓜子,我也还是用Python!

甚至······

看完这些,你是不是很佩服Python的强大和实用?

现在,让我们正式推开学习Python的大门,但在此之前,你得需要几样东西:

  1. 书——《Python3智能数据分析快速入门》

  2. 电脑——

  3. 大脑——乐于并坚持训练编程思维的大脑

  4. 小学四年级以上的英语水平

01 Python特性之动态类型

Python语言是一门解释型、动态、强类型的面向对象的编程语言。解释型指由于计算机无法理解除机器语言之外的任何语言,所以必须将程序员编写的程序语言翻译成机器语言,计算机才能执行程序。

强类型定义语言指:一门计算机语言是否为强制数据类型定义的语言。强类型语言中的变量被指定为某个数据类型后,在被强制转换前永远是该数据类型。Python是一门强类型的语言,Python不会对数据类型做隐式转换,而是调用方法对数据类型进行强制转换。

而新手学习Python时,往往会在动态类型这里出现问题,所谓动态类型,是指在程序运行期间才去做数据类型检查的语言。好,让我们先来举一个简单的栗子:

1. 正常示范

#Python是一种典型的动态类型的语言
#正常示范
a=int(input("请输入一个整数:"))
b=int(input("请再次输入一个整数:"))
 print(a+b)

摁F5运行之后并依次输入3,4:

结果为7。

这时我们使用type()函数查看输出结果的数据类型:

#接下来我们用type()查看一下数据类型
 print(type(a+b))

数据类型是数字数据类型中的整数。

2. 不声明变量的数据类型

操作同上,只是在每一步之后都打印出数据类型以便于观察:

#第二种:不声明变量的数据类型
a=input("请输入一个整数:")
 print(type(a)) #查看数据类型
b=input("请再次输入一个整数:")
 print(type(b)) #查看数据类型
 print(a+b)
 print(type(a+b)) #查看数据类型

结果是:

显然,计算结果出错,原因在于不使用int()函数对输入进行数据类型声明,导致这里的“+”的作用变成了将两个字符串连接起来变成一个新的字符串,输出结果是34('str')。

3. 缺少声明变量类型

操作同上,只是缺少声明变量a的数据类型:

#第三种:缺少声明变量类型
a=(input("请输入一个整数:"))
b=int(input("请再次输入一个整数:"))
 print(a+b)

和这样的:

n=input("输入一个整数n")
if n%5==0 and n%7==0:
 print("n能被5和7整除")
else:
 print("n不能被5和7整除")

输出后报错:

和这样的:

总结一下就是,Python就是一种典型的动态类型语言。在编程时,永远也不用给任何变量指定数据类型,它会在第一次赋值给变量时,在内部将数据类型记录下来;而它又是一门强类型定义语言,即是否为强制数据类型定义的语言。Python中的变量,被指定为某个数据类型之后,在被强制转换之前,永远是该数据类型。

这些就是Python的特性,以后我们在进行一些操作时,永远要根据实际需求对变量进行一些处理与转换。

所以,细心才能走得更远。

02 Python之IDE

Python是一门解释性语言,在运行时需要解释才能执行,此时需要解释器,执行解释这项工作。集成开发环境,简称IDE,是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本,并编译打包成为可用的程序,有些甚至可以设计图形接口。

选择合适的IDE能有效帮助开发者提高编程效率。IDE大致上可分为下述两类。免费的IDE和为更高级的面向企业和专业开发人员的商业IDE(当然,有些也会提供免费的社区版)。

在《Python3智能数据分析快速入门》第一章,作者详细介绍了IDLE,PyCharm,Eclipse+PyDev,Rodeo,Jupyter Notebook,Spyder六种IDE类型,接下来,我们做几点总结与补充:

Python的 IDLE是Python自带的、默认的、常用的与入门的编写工具,它包含交互式与文件式两种方式,在交互式中,我们可以提交一行或多行语句并且立刻看到结果,我们可以像其它编辑器一样去编写相关的程序,应该说对于Python入门的同学,想编写功能简单直接,300+代码以内这个功能应用的同学来说,IDLE是非常好的编辑工具。

对于PyCharm,它分社区版,这是免费的,和专业版,是收费的。那我们编写的绝大多数程序,有社区版的免费版本就可以完成,PyCharm是所有这类集成工具中简单和集成度高的,它非常适合编写较大和较复杂的工程。

对于Anaconda,它是开源、免费的一个集成开发框架,它支持近800个第三方库,非常强大与使用。

《Python3智能数据分析快速入门》中对PyCharm和Anaconda做了非常详细的介绍,同学们可以去学习。但在本文中,我用IDLE作为讲解,对于新手非常友好。

03 小结概述

Python是一门高层次计算机程序语言,拥有20多年的发展历史,关键的特性包括:解释型、动态、强类型。其应用领域涵盖机器学习、数值运算、数据可视化、网络编程、数据库开发、自动化运维和GUI编程等。

Python核心团队即将停止对Python2版本的维护,建议新的Python项目使用Python3版本。

Python拥有多种IDE,其中PyCharm是一个专业的Python集成开发环境,安装完毕后的初次启动需经一系列设置才可使用,其创建的.py文件存储在工作目录下。

Jupyter Notebook可通过菜单目录或命令行启动,支持LaTex与Markdown,支持整个代码与其结果输出为html。

以上内容是基于《Python3智能数据分析快速入门》第一章的学习心得,难免有许多纰漏和错误,欢迎大家指正与批评!

2020年,新年伊始,让我们立一个flag——学好Python,解放双手,解放思想!

最后祝大家新年快乐!

关于作者:王皓,一名就读于北京石油化工学院大数据管理与应用专业的同学,热爱并致力于学习Python语言及相关应用领域。「大数据DT」内容合伙人。

延伸阅读

《Python3智能数据分析快速入门》

点击上图了解及购买

推荐语:本书假设你有一定的数据分析基础,但是没有Python和AI基础,为了帮助你快速掌握智能数据分析需要的技术和方法,书中有针对性地讲解了Python和AI中必须要掌握的知识点,内容由浅入深,循序渐进。从环境配置、基本语法、基础函数到第三方库的安装与使用,对各个操作步骤、函数、工具、代码示例等的讲解非常详尽,确保所有满足条件的读者都能快速入门。

相关文章:

  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • 沿用70多年的经典数据可视化方法,如何用Python实现?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • 学AI哪家强?2019全球排行清华第1,北大第2
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • 华为、阿里等知名公司年终奖发了多少?
  • 2020 云原生 7 大趋势预测
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • 给平庸程序员的12条建议
  • 华章新春献礼 扫码免费领书
  • 编程语言书单(Java核心技术篇)
  • ​人工智能书单(数学基础篇)
  • 中国医院需要什么样的数据中台?
  • 人工智能书单(机器学习理论篇)
  • 智能时代书单
  • 5、React组件事件详解
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • javascript 哈希表
  • Mysql数据库的条件查询语句
  • Redux系列x:源码分析
  • RxJS: 简单入门
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue组件定义
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 计算机常识 - 收藏集 - 掘金
  • 浏览器缓存机制分析
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端设计模式
  • 使用putty远程连接linux
  • 一些关于Rust在2019年的思考
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 阿里云API、SDK和CLI应用实践方案
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​【已解决】npm install​卡主不动的情况
  • ​虚拟化系列介绍(十)
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 数论-逆元
  • #100天计划# 2013年9月29日
  • #传输# #传输数据判断#
  • ${factoryList }后面有空格不影响
  • (1)(1.9) MSP (version 4.2)
  • (BFS)hdoj2377-Bus Pass
  • (C)一些题4
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • ***监测系统的构建(chkrootkit )
  • ./configure,make,make install的作用
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作