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;以帮…

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

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

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

从前的日色变得慢&#xff0c;车&#xff0c;马&#xff0c;邮件都慢&#xff0c;一生只够爱一个人 -- 《从前慢》 近期在团队项目里把Webpack升级到4.4.1&#xff0c;过程中发现现存的升级文档十分有限&#xff0c;踩了不少坑&#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…

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

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

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

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

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

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

在Amazon EMR上运行Hadoop MapReduce作业

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

[JSConf EU 2018] 大脑控制 Javascript

先解释&#xff0c;本人为前端菜鸟&#xff0c;之前也未参加过类似的活动&#xff0c;没有翻译过什么文章&#xff0c;此次是好奇心使然&#xff0c;也是想尝试下&#xff0c;学习学习&#xff0c;英文很烂&#xff0c;全靠有道&#xff0c;但是视频整个看下来&#xff0c;还是…

JavaScript中不得不说的断言?

断言主要应用于“调试”与“测试” 一、前端中的断言 仔细地查找一下JavaScript中的API&#xff0c;实际上并没有多少关于断言的方法。唯一一个就是console.assert&#xff1a; // console.assert(condition, message)const a 1console.assert(typeof a number, a should be…

Java EE状态会话Bean(EJB)示例

在本文中&#xff0c;我们将了解如何在简单的Web应用程序中使用状态会话Bean来跟踪客户端会话中的状态。 1.简介 有状态会话Bean通常保存有关特定客户端会话的信息&#xff0c;并在整个会话中保留该信息&#xff08;与无状态会话Bean相对&#xff09;。 有状态EJB实例仅与一个…

起点海外版 Hybrid App-内嵌页优化实践

本文作者&#xff1a;刘文涛 原创声明&#xff1a;本文为阅文前端团队 YFE 成员出品&#xff0c;请尊重原创&#xff0c;转载请联系公众号 (id: yuewen_YFE) 获取授权&#xff0c;并注明作者、出处和链接。 今年年初我司开启了起点品牌的海外之旅&#xff0c;名为「 Webnovel 」…

aix 卸载mysql_AIX 删除数据库及集群软件

一、 删除数据库1、用dbca自动删库在CRT上无法打开dbca图形界面&#xff0c;要安装一个Xmanage软件&#xff0c;用Xstart连接终端&#xff0c;并修改oracle用户的.profile&#xff0c;加上“export DISPLAY192.168.8.120:0.0”Xstart配置信息如下&#xff1a;2、手工删除数据库…

如何在github中的readme.md加入项目截图

1. 先在之前的本地项目文件夹里创建一个存放截图的文件夹。&#xff08;如img文件夹&#xff09; 2. 将新增的内容通过github desktop上传到github中 3. 在github中立马能看到刚刚上传的图片&#xff0c;打开图片&#xff0c;点击Download 4. 直接复制地址栏的网址 5. 最后在RE…

记表格设计规范整理与页面可视化生成工具开发

前言 公司有一个项目在维护&#xff0c;大概有300左右&#xff0c;其中表单与表格的页面占比大概百分之五六十&#xff0c;为了节省开发时间&#xff0c;避免多人协作时&#xff0c;出现多套冗余代码&#xff0c;我们尝试写了一下表单和表格的生成工具&#xff0c;从梳理到规范…

java仿qq空间音乐播放_完美实现仿QQ空间评论回复特效

评论回复是个很常见的东西&#xff0c;但是各大网站实现的方式却不尽相同。大体上有两种方式1.像优酷这种最常见&#xff0c;在输入框中要回复的人&#xff0c;这种方式下&#xff0c;用www.cppcns.com户可以修改。新浪微博则是在这个基础上&#xff0c;弹出好友菜单。这种方式…

使用签名保护基于HTTP的API

我在EMC上的一个平台上可以构建SaaS解决方案。 与越来越多的其他应用程序一样&#xff0c;该平台具有基于RESTful HTTP的API。 使用像JAX-RS这样的开发框架&#xff0c;构建这样的API相对容易。 但是&#xff0c; 正确构建它们并不容易。 建立基于HTTP的API的问题 问题不仅…