Python - day1 借鉴洪卫

一、了解开发语言

 1、高级语言:Python,Java,C++,C#,PHP,JS,Go,Ruby,SQL,Swift,Perl,Objective-C,R等等;

 2、低级语言:C语言、汇编;

  PS:为了好分类,这里说的高级、低级不是说语言本身的高低级,高级语言更抽象化,更靠上层,低级语言更靠计算机底层硬件,所有的高级语言内部都是依赖C语言来实现的。高级语言---->背后是C语言---->背后是汇编(0101机器码)---->机器执行

 3、字节码和机器码

    1>字节码由高级语言转换生成;

    2>机器码是计算机硬件能够直接运行的。

二、各语言之间的对比

1、以上说的高级语言大致可以分为以下两大类:

            1>PHP类:只适用于写网页,有局限性;

    2>Python、Java等类:既可以写网页,也可以写后台功能(业务软件等)。

      -Python:执行效率比Java低,但开发效率高;

      -Java:执行效率比Python高,但开发效率低;

      -语言和语言之间速度之类的差异其实很小,关键在于你是否有一个优秀的程序员,一个优秀的程序员他用Python写的程序,也比一般的程序员用Java写的程序运行速度更快,更稳定。

  2、只要做程序开发,如果想深入,想不断上升,以后一般来说一定要自学C语言,因为它是其他高级语言的基础。

三、Python的种类

1、Python最近越来越火,有很多公司都尝试着结合自己公司语言推出各个公司自己的Python版本,比较常见的有CPython、JPython(Java Python)、JavaScriptPython、RubyPython、IronPython、PyPy等等。在上面这些Python版本种类中,我们一般选择CPython来学习,下面这张图就说明了为什么:

  2、PyPy,这是用CPython开发的Python版本,相当于CPython的升级版,它的执行速度比Python快很多(其实是第一次执行没这么快,但是第二次及以后就很快了,原因是第一次代码执行,转换后的运行机器码PyPy会拿在手上,下次运行就直接机器码去运行,而Python拿在手上的是字节码,每次运行还得转换成机器码运行)

    -速度方面:PyPy > CPython > JPython、RubyPython这一类;

    -但是,PyPy现在还不够稳定,还不是主流,现在的主流仍然是用CPython;

    -以后我们可以用CPython写好代码,然后装一个PyPy把代码扔给他执行就行了。

四、Python安装

1、下载安装软件

  1.1 下载

    -官网:https://www.python.org/downloads/

    -Python2:在继续更新(使Python2越来越靠近Python3, 2020停止支持)。

    -Python3:一直在更新,我们现在学习Python就下载Python3版本。

  1.2 安装

    -Windows:无脑点,安装时记得勾上为Python创建环境变量,省得后面自己配。

    -Linux:新版本的Linux发行版本一般都是自带Python2的,比如CentOS 7(Ubuntu 18.04自带的Python3),如果没Python3.X的可以再装一个3.X的版本(两个版本同时存在要配置一下,不然yum会报错,CentOS 7上的配置过程洪卫在另一个随笔里写了http://www.cnblogs.com/shwee/p/9015059.html)。

  1.3 环境变量

    -Windows系统里面安装刚才说了只要安装时勾上为其创建环境变量即可,Linux上面洪卫在另一个随笔写了http://www.cnblogs.com/shwee/p/9015059.html。

2、Python安装在系统上

   2.1 执行操作

     -写一个文件,文件中按照Python的规则写,将文件交给Python软件,读取文件中的内容,然后进行转换和执行,最终获取结果

     -Python软件---->Python解释器(做内存管理)

3、Python基础知识

  3.1 第一句Python

    -后缀名可以是任意的(这就是为何叫python解释器)

    -导入模块时,如果不是.py文件会报错

    ===>所以以后文件名统一都写成.py的形式

  3.2 两种执行方式

    -Python解释器     .py文件路径

    -Python IDLE      进入解释器交互界面:实时输入并获取执行结果

    -Linux系统下:

      -文件名运行       ./test.py

      -文件内部头部要加上下面声明:#!/usr/bin/env python      ----这一句是在Linux系统中特意需要的Python3解释器路径声明。

      -接着在第二行加上: # _*_ coding:utf8 _*_       ----当然,用python3版本的解释器运行就不需要加这一句声明了,因为Python3版本默认的编码格式就是utf-8,而Python2不是默认utf-8编码格式。

      -这两句如果要写,就要写在文件最开头的两行,且中间不能间插其他行进来,不然就不会生效了。

  3.3 介绍一下编码格式

    -最早的编码:ASCII,在美国产生,用八位来编码表示一个字符。

    -后来各个国家都在使用计算机,都出台自己国家的编码格式,为了全球都能通用统一编码,国际统一搞出了个万国码:Unicode,为了国际通用,它是用16位以上(至少16位,也就是两个字节)的比特位来表示一个字符,但是这样的话每个不同的字符都是用16位以上的比特位来编写表示,但是就像ASCII编码上面的一个字符八位就可以表示了,所以这样有点浪费空间。

    -所以后面又搞出个utf-8的编码格式,utf-8规定,一个字符能用多少位表示就用多少位,比如一个英文字母用8位表示,一个汉字用24位(3个字节)表示,不是像unicode上统一都用16位以上来表示,所以这样比较节省空间,而且又做到了全球通用。

    -在Python3中,默认utf-8的编码格式,因此文件开头无需特别说明,但是Python2如果想要使用中文,就必须要做声明,不然显示会乱码;

    -当然,如果写一个文件只有中文,用GBK,GBK-2312这样的国标码当然比较好。

五、开始Python学习

  介绍完上面的东西,好了,我们来学习Python编写代码:

1、首先来认识变量名:

    -在python中我们常用字母、数字、下划线来组合形成变量名,它们的组合有一定的规则,那就是数字不能作为变量名开头,变量名不能是python关键字,最好不要和python内部的东西(比如某个函数、方法的名字,例如sum([1, 2, 4, 5, 8]),用sum作变量名使用求和方法sum()时就不会生效)一样

    -python中的关键字有:

1
2
3
4
5
6
7
8
9
10
11
12
13
help("keywords")  #查Python关键字的命令
Here is list of the Python keywords.  Enter any keyword to get more help.
False              def                 if              raise
None               del                 import          return
True               elif                in              try
and                else                is              while
as                 except              lambda          with
assert             finally             nonlocal        yield
break              for                 not                
class              from                or                 
continue           global              pass    

    -变量名可以是生活的写照,尽量让变量名起得有意义一些,比如用户的id信息,我们可以用user_id来表示,比如我们在编程中要经常用到一句话,我们可以定义变量名:str_u = '从你的全世界路过' ,等等

2、程序员第一句,让计算机输出显示一句“你好,Python!”

1
2
3
4
5
6
# !/usr/bin/env python
# -*- coding: utf-8 -*-
print('你好,Python!')
输出结果:你好,Python!

3、接下来我们来看看基本数据类型:

  3.1 <字符串>

    -字符串我们要用引号引起来,这样Python解释器程序一读到这一句话,碰到引号引起来的内容,他就会把引号里面的东西(全部)当做字符串处理,当然在Python中,单引号,双引号,三引号等都能识别,如下:

name = '我是shw'  name = "我是shw"  name = '''我是shw'''  name = """我是shw"""

    -当然在python中字符串可以直接做加法:

1
2
3
4
n1 = "shw"   n2 = "nb"  n3 = n1 + n2
print(n3)
输出结果:shwnb

    -也可以做乘法:

1
2
3
4
n1 = "shw"   n2 = n1 * 3
print(n2)
输出结果:shwshwshw

  3.2 <数字>

    -在Python中我们可以做数字的数学运算(加减乘数,取商取余):

1
2
3
4
5
6
7
8
9
10
11
n1 = 30
n2 = 4
n3 = n1 + n2    #加法
n4 = n1 - n2    #减法
n5 = n1 * n2    #乘法
n6 = n1 / n2    #除法
n7 = n1 % n2    #取余数
n8 = n1 //n2    #取商
print(n3, n4, n5, n6, n7, n8)
输出结果:34 26 120 7.5 2 7

4、学习条件语句

  4.1 if条件基本语句

1
2
3
4
5
6
7
8
9
10
11
12
#例一
if 条件:
    内部代码块1
    内部代码块2
else:
    ...
print('-----end------')
#例二
if 条件:
    pass        #什么都不执行,过的意思
print('-----end------')

  4.2 if语句的嵌套

1
2
3
4
5
6
7
8
9
if 条件:
    if 条件:
        if 条件:
            if 条件:
                ...
            else:
        else:
    else:
else:

  4.3 多条件判断if语句

1
2
3
4
5
6
7
8
if 条件:
    代码块
elif 条件:
    代码块
elif 条件:
    代码块
else:
    ...

  PS:在Python中用强制缩进(四个空格)来区分代码块,其他语言比如Java是用{}来区分,比如:

1
2
3
if 条件{
   代码块
}

5、循环语句

  5.1 死循环

1
2
3
#死循环,一直输出ok   
while 1==1:
    print('ok')

  5.2 条件循环

1
2
3
4
5
6
#条件循环,屏幕输出十次ok
count = 0
while count < 10
    print('ok')
    count = count + 1
print('------over------')

 

六、练习题

  涉及if条件语句,while循环语句,奇偶数,数字运算,变量定义等

1、使用while循环输出1、 2、 3、 4、 5、 6、 8、 9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
= 1
while n < 10:
    if == 7:
        pass
    else:
        print(n)
    = + 1
print('------over------')
输出结果:
1
2
3
4
5
6
8
9
------over------

2、输出1~100的所有奇数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
= 1
while n < 101:
    temp = % 2
    if temp == 0:
        pass
    else:
        print(n)
    = + 1
print('------over------')
输出结果:
1   3   5   7   9   11  13  15  17  19
21  23  25  27  29  31  33  35  37  39
41  43  45  47  49  51  53  55  57  59
61  63  65  67  69  71  73  75  77  79 
81  83  85  87  89  91  93  95  97  99
------over------

3、求1~100的所有数的和

1
2
3
4
5
6
7
8
9
10
11
= 1
= 0
while n < 101:
    = + n
    = + 1
print('sum = ', s)
print('-------over------')
输出结果:
sum =  5050
-------over------

4、输出1~100的所有偶数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
= 1
while n < 101:
    temp = % 2
    if temp == 0:
        print(n)
    else:
        pass
    = + 1
print('------over------')
输出结果:
2   4   6   8   10  12  14  16  18  20
22  24  26  28  30  32  34  36  38  40
42  44  46  48  50  52  54  56  58  60
62  64  66  68  70  72  74  76  78  80
82  84  86  88  90  92  94  96  98  100
------over------

5、求1-2+3-4+5-...+99-100的所有数之和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
= 1
= 0
while n < 101:
    temp = % 2
    if temp == 0:
        = - n
    else:
        = + n
    = + 1
print('sum = ', s)
print('-------over------')
输出结果:
sum =  -50
-------over------

转载于:https://www.cnblogs.com/hiroren/p/9071824.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

返回一个二维整数数组最大子数组的和

要求&#xff1a; 1&#xff0c;输入一个二维整形数组&#xff0c;数组里有正数也有负数。 2&#xff0c;二维数组中连续的一个子矩阵组成一个子数组&#xff0c;每个子数组都有一个和, 3&#xff0c;求所有子数组的和的最大值。 设计思路&#xff1a; 参照一维整数数组求解最大…

基于React的表单开发的分析(上)

本文主要讲解后台系统与表单相关的页面开发&#xff0c;并分析如何才能更好地、高效地开发。 技术栈 ReactAntd 背景 Antd 以下我都将Ant Design 简称为 Antd Ant Design是个服务于企业级产品的UI框架&#xff0c;主要可以用于中后台系统,它有基于React、Vue和Angular的实现…

50个Servlet面试问答

Servlet是Java EE的一个非常重要的主题&#xff0c;所有Web应用程序框架&#xff08;例如Spring和Struts&#xff09;都建立在它之上。 这使servlet成为Java访谈中的热门话题。 在这里&#xff0c;我提供了50个servlet面试问题的列表&#xff0c;并提供了答案&#xff0c;以帮…

在vue中使用font-awesome

1、安装 cnpm i font-awesome -S 2、在main.js中引入 import font-awesome/css/font-awesome.min.css 转载于:https://www.cnblogs.com/wuln/p/9072084.html

深入浅出的webpack4构建工具--webpack4+react构建环境(二十)

下面我们来配置下webpack4react的开发环境&#xff0c;之前都是针对webpack4vue的。下面我们也是在之前项目结构的基础之上进行配置下。 首先看下如下是我为 webpack4react 基本的项目结构如下&#xff1a; ### 目录结构如下&#xff1a; demo1 …

Webpack 4进阶--从前的日色变得慢 ,一下午只够打一次包

从前的日色变得慢&#xff0c;车&#xff0c;马&#xff0c;邮件都慢&#xff0c;一生只够爱一个人 -- 《从前慢》 近期在团队项目里把Webpack升级到4.4.1&#xff0c;过程中发现现存的升级文档十分有限&#xff0c;踩了不少坑&#xff0c;好在升级之后提升还算显著&#xff0c…

使用Guava MapSplitters配置Hadoop

在本文中&#xff0c;我们将为通过Context对象将配置参数传递给Hadoop Mapper提供新的思路。 通常&#xff0c;我们在启动map-reduce作业时将配置参数设置为Context对象上的键/值对。 然后&#xff0c;在Mapper中&#xff0c;我们使用键来检索用于我们的配置需求的值。 不同之处…

pdo 参数化查询 mysql函数_PDO笔记之参数化查询

参数化查询解释在这里&#xff1a;Wiki参数化查询 (少有的Wiki中文比英文介绍的要详细的编程条目)PDO中参数化查询主要用到prepare()方法&#xff0c;然后这个方法会返回一个PDOStatement对象&#xff0c;也就SQL声明(不知道怎么翻译)&#xff0c;此时SQL语句只是被编译&#x…

二叉树和哈希表的优缺点对比与选择

二叉树(binary tree)和哈希表(hash table)都是很基本的数据结构&#xff0c;但是我们要怎么从两者之间进行选择呢&#xff1f;他们的不同是什么&#xff1f;优缺点分别是什么&#xff1f; 回答这个问题不是一两句话可以说清楚的&#xff0c;原因是在不同的情况下&#xff0c;选…

编码Java时的10个微妙的最佳实践

这是10个最佳实践的列表&#xff0c;这些最佳实践比您的平均Josh Bloch有效Java规则要微妙得多。 尽管Josh Bloch的列表很容易学习&#xff0c;并且涉及日常情况&#xff0c;但此处的列表包含了涉及API / SPI设计的较不常见的情况&#xff0c;但可能会产生很大的影响。 我在编…

Vue 实现微信 jssdk 扫码, 上传图片

流程 1: 配置微信公众号JS域名 2:前端发送URL后台获取JSSDK配置, 后台Service代码如下, 修改2处位置: WeixinUtil.APPID > 当前公众号APPID WeixinUtil.getAccessToken() > 当前公众号access_token public interface IWxJssdkService {Map<String, Object> getJssd…

有意思的前端函数面试题

1:考引用类型在比较运算符时候 隐式转换会调用本类型那个方法 toString和valueOf&#xff1f;(去年过年吵的很火国外的题) if(a 1 && a 2 && a 3){console.log("我走进来了"); }<!--答案1:--> var a {num:0}; a.valueOf function(){retur…

用java写个简单的直播强求_全网最简单易懂的Netty入门示例,再不会用Netty我直播吃翔...

//server引导类ServerBootstrap serverBootstrap new ServerBootstrap();//boss 对应 IOServer.java 中的接受新连接线程,主要负责创建新连接NioEventLoopGroup boss new NioEventLoopGroup();//worker 对应 IOServer.java 中的负责读取数据的线程,主要用于读取数据以及业务逻…

XamarinAndroid组件教程设置自定义子元素动画(一)

XamarinAndroid组件教程设置自定义子元素动画(一) 如果在RecyclerViewAnimators.Animators中没有所需要的动画效果&#xff0c;就可以自定义一个。此时&#xff0c;需要让自定义的动画继承BaseItemAnimator抽象类。 【示例1-2】下面以RecylerViewAnimatorsItemAnimator项目为基…

使用Storm进行可扩展的实时状态更新

在本文中&#xff0c;我将说明如何借助Storm框架以可扩展且无锁定的方式在数据库中维护实时事件驱动流程的当前状态。 Storm是基于事件的数据处理引擎。 它的模型依赖于基本原语&#xff0c;例如事件转换&#xff0c;过滤&#xff0c;聚合……&#xff0c;我们将它们组合成拓扑…

python关于字典嵌套字典,列表嵌套字典根据值进行排序

python 对于字典嵌套字典&#xff0c; 列表嵌套字典排序 例&#xff1a;列表嵌套自字典&#xff1a;d [{"name": 张三, s: 68}, {name: 李四, s: 97}] 对于列表嵌套字典可以使用python的sorted()方法&#xff0c;也可以使用list的sort()方法&#xff1a; sorted方法…

【干货】十分钟读懂浏览器渲染流程

在之前写过的一篇《"天龙八步"细说浏览器输入URL后发生了什么》一文中&#xff0c;和大家分享了从在浏览器中输入网址URL到最终页面展示的整个过程。部分读者向我反馈对于最后的浏览器渲染布局这块不是很清晰&#xff0c;所以本文就浏览器渲染流程单独开篇讲解&#…

控制台资费管理主菜单java_java毕业设计_springboot框架的高速公路收费管理系统...

今天介绍一个java毕设题目, 题目内容为springboot框架的高速公路收费管理系统, 是一个采用b/s结构的javaweb项目, 采用java语言编写开发工具eclipse, 项目框架jspspringbootmybatis, 高速公路收费管理系统的信息存储于mysql中, 并基于mybatis进行了orm封装, 该高速公路收费管理…

Hibernate框架的搭建和一个简单的实例

Hibernate是一个支持对JDBC进行封装的框架&#xff0c;实现了对底层数据库访问的封装。非常适合使用和开发。首先需要下载Hibernate&#xff0c;可以在这个网站下载最新包。http://www.hibernate.org/然后打开他的目录结构&#xff0c;将lib目录下的required目录下的包全部导入…

在Amazon EMR上运行Hadoop MapReduce作业

不久前&#xff0c;我发布了如何使用CLI设置EMR群集的信息。 在本文中&#xff0c;我将展示如何使用适用于AWS的Java SDK来设置集群。 展示如何使用Java AWS开发工具包执行此操作的最佳方法是展示完整的示例&#xff0c;因此&#xff0c;让我们开始吧。 设置一个新的Maven项目…