Python-100-Days: Day01

Day01

Python简介

1.1989年Guido von Rossum在圣诞节之夜开始着手python语言编译器的编写。

2.1991年2月 Python v1 编译器诞生,使用C实现的,此时可以调用C的库函数。

3.1994年1月,Python v1.0 正式版发布。

4.2000年10月16日,Python2.0 发布,增加了完整的垃圾回收,提供了对Unicode的支持。

5.2008年12月3日,Python3.0 发布,Python3和Python2存在不兼容性。之后Python3的部分新特性也被移植到Python2中。

Python的优缺点:

1.简单,容易上手。

2.开放源码,社区和生态圈强大,特别是中数据分析和机器学习领域。

3.解释性语言,具有平台可移植性,代码可用于不同的操作系统。

4.对两种主流编程范式(面向对象编程和函数式编程)都提供了支持。

5.代码规范程度高,可读性强。

Python的缺点:

1.执行效率低下。

2.代码无法加密

3.开发时可以选择的框架太多,有选择的地方就有错误。

Python的应用领域

Python在Web应用后端开发、云基础设施建设、DevOps、网络数据采集(爬虫)、自动化测试

数据分析、机器学习等领域有着广泛的应用。

安装Python解释器

Linux环境

Linux环境自带了Python 2.x版本,但是如果要更新到3.x的版本,可以在Python的官方网站下载Python的源代码并通过源代码构建安装的方式进行安装,具体的步骤如下所示(以CentOS为例)。

  1. 安装依赖库(因为没有这些依赖库可能在源代码构件安装时因为缺失底层依赖库而失败)。
yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

    2.下载Python源代码并解压缩到指定目录。
 

wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
xz -d Python-3.7.6.tar.xz
tar -xvf Python-3.7.6.tar

3.切换至Python源代码目录并执行下面的命令进行配置和安装。

cd Python-3.7.6
./configure --prefix=/usr/local/python37 --enable-optimizations
make && make install

4.修改用户主目录下名为.bash_profile的文件,配置PATH环境变量并使其生效。

cd ~
vim .bash_profile
# ... 此处省略上面的代码 ...export PATH=$PATH:/usr/local/python37/bin# ... 此处省略下面的代码 ...

5.激活环境变量

source .bash_profile

macOS环境

macOS也自带了Python 2.x版本,可以通过Python的官方网站提供的安装文件(pkg文件)安装Python 3.x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的Python解释器,启动3.x版本的Python解释器需要执行python3命令。

运行Python程序

确认Python的版本
python --version

 在Linux或macOS系统的终端中键入下面的命令。

python3 --version

当然也可以先输入pythonpython3进入交互式环境,再执行以下的代码检查Python的版本。

import sysprint(sys.version_info)
print(sys.version)
编写Python源代码

可以用文本编辑工具(推荐使用Sublime、Visual Studio Code等高级文本编辑工具)编写Python源代码并用py作为后缀名保存该文件,代码内容如下所示。

print('hello, world!')
运行程序

切换到源代码所在的目录并执行下面的命令,看看屏幕上是否输出了"hello, world!"。

python hello.py

python3 hello.py
代码中的注释

注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。

  1. 单行注释 - 以#和空格开头的部分
  2. 多行注释 - 三个引号开头,三个引号结尾

 

"""
第一个Python程序 - hello, world!
向伟大的Dennis M. Ritchie先生致敬Version: 0.1
Author: 骆昊
"""
print('hello, world!')
# print("你好, 世界!")

Python开发工具

IDLE - 自带的集成开发工具

IDLE是安装Python环境时自带的集成开发工具,如下图所示。但是由于IDLE的用户体验并不是那么好所以很少在实际开发中被采用。

IPython - 更好的交互式编程工具

IPython是一种基于Python的交互式解释器。相较于原生的Python交互式环境,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython,具体的操作如下所示。

pip install ipython# orpip3 install ipython

 

安装成功后,可以通过下面的ipython命令启动IPython,如下图所示。

 

hello.py

"""
第一个Python程序 - hello, world!
向伟大的Dennis M. Ritchie先生致敬Version: 0.1
Author: 骆昊
Date: 2018-02-26请将该文件命名为hello.py使用Windows的小伙伴可以在命令行提示下通过下面的命令运行该程序
python hello.py对于使用Linux或macOS的小伙伴可以打开终端并键入下面的命令来运行程序
python3 hello.py
"""print('hello, world!')
# print("你好,世界!")
print('你好', '世界')
print('hello', 'world', sep=', ', end='!')
print('goodbye, world', end='!\n')

flag.py

"""
用Python的turtle模块绘制国旗
"""
import turtledef draw_rectangle(x, y, width, height):"""绘制矩形"""turtle.goto(x, y)turtle.pencolor('red')turtle.fillcolor('red')turtle.begin_fill()for i in range(2):turtle.forward(width)turtle.left(90)turtle.forward(height)turtle.left(90)turtle.end_fill()def draw_star(x, y, radius):"""绘制五角星"""turtle.setpos(x, y)pos1 = turtle.pos()turtle.circle(-radius, 72)pos2 = turtle.pos()turtle.circle(-radius, 72)pos3 = turtle.pos()turtle.circle(-radius, 72)pos4 = turtle.pos()turtle.circle(-radius, 72)pos5 = turtle.pos()turtle.color('yellow', 'yellow')turtle.begin_fill()turtle.goto(pos3)turtle.goto(pos1)turtle.goto(pos4)turtle.goto(pos2)turtle.goto(pos5)turtle.end_fill()def main():"""主程序"""turtle.speed(12)turtle.penup()x, y = -270, -180# 画国旗主体width, height = 540, 360draw_rectangle(x, y, width, height)# 画大星星pice = 22center_x, center_y = x + 5 * pice, y + height - pice * 5turtle.goto(center_x, center_y)turtle.left(90)turtle.forward(pice * 3)turtle.right(90)draw_star(turtle.xcor(), turtle.ycor(), pice * 3)x_poses, y_poses = [10, 12, 12, 10], [2, 4, 7, 9]# 画小星星for x_pos, y_pos in zip(x_poses, y_poses):turtle.goto(x + x_pos * pice, y + height - y_pos * pice)turtle.left(turtle.towards(center_x, center_y) - turtle.heading())turtle.forward(pice)turtle.right(90)draw_star(turtle.xcor(), turtle.ycor(), pice)# 隐藏海龟turtle.ht()# 显示绘图窗口turtle.mainloop()if __name__ == '__main__':main()

 peppa_pig.py

"""
绘制小猪佩奇
"""
from turtle import *def nose(x, y):"""Draw nose"""penup()# move the turtle to destination location.goto(x, y)pendown()# setting the direction of turtles(0-east, 90-north, 180-west, 270-south)setheading(-30)begin_fill()a=0.4for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a = a + 0.08# turn left 3 degreesleft(3)# go aheadforward(a)else:a = a - 0.08left(3)forward(a)end_fill()penup()setheading(90)forward(25)setheading(90)forward(25)setheading(0)forward(10)pendown()# setting the draw of pen's color(red, green, blue)pencolor(255, 155, 192)setheading(10)begin_fill()circle(5)color(160, 82, 45)end_fill()penup()setheading(0)forward(20)pendown()pencolor(255, 255, 192)setheading(10)begin_fill()circle(5)color(160, 82, 45)end_fill()def head(x, y):"""draw head"""color((255, 155, 192), "pink")penup()goto(x,y)setheading(0)pendown()begin_fill()setheading(180)circle(300, -30)circle(100, -60)circle(80, -100)circle(150, -20)circle(60, -95)setheading(161)circle(-300, 15)penup()goto(-100, 100)pendown()setheading(-30)a = 0.4for i in range(60):if 0 <= i < 30 or 60 <= i < 90:a = a + 0.08lt(3) # turn left 3 degressfd(a)else:a = a - 0.08lt(3)fd(a)end_fill()def ears(x,y):"""draw ear"""color((255, 155, 192),"pink")penup()goto(x, y)pendown()begin_fill()setheading(100)circle(-50, 50)circle(-10, 120)circle(-50, 54)end_fill()penup()setheading(90)forward(-12)setheading(0)forward(30)pendown()begin_fill()setheading(100)circle(-50, 50)circle(-10, 120)circle(-50, 56)end_fill()def eyes(x, y):"""draw eyes"""color((255, 155, 192), "white")penup()setheading(90)forward(-20)setheading(0)forward(-95)pendown()begin_fill()circle(15)end_fill()color("black")penup()setheading(90)forward(12)setheading(0)forward(-3)pendown()begin_fill()circle(3)end_fill()color((255, 155, 192),"white")penup()seth(90)forward(-25)seth(0)forward(40)pendown()begin_fill()circle(15)end_fill()color("black")penup()setheading(90)forward(12)setheading(0)forward(-3)pendown()begin_fill()circle(3)end_fill()def cheek(x, y):"""draw cheek"""color((255, 155, 192))penup()goto(x,y)pendown()setheading(0)begin_fill()circle(30)end_fill()def mouth(x,y):"draw mouth"color(239, 69, 19)penup()goto(x, y)pendown()setheading(-80)circle(30, 40)circle(40, 80)def setting():"""setting parameters"""pensize(4)# hide the turtlehideturtle()colormode(255)color((255, 155, 192), "pink")setup(840, 500)speed(10)def main():"""main"""setting()nose(-100, 100)head(-69, 167)ears(0, 160)eyes(0, 140)cheek(80, 10)mouth(-20, 30)done()if __name__ == '__main__':main()

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

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

相关文章

新药品注册分类5大类的注册标准

在医药行业的浩瀚海洋中&#xff0c;药品注册分类就如同一座明亮的航标灯&#xff0c;指引着每一款新药从实验室走向市场&#xff0c;从理论概念变成患者手中的生命希望。本文将深入探讨化学药、中药、生物药的药品注册分类标准&#xff0c;药品分类常见问题、以及如何高效查询…

linux系统-深入学习文件系统与日志分析

目录 一、inode于block inode于block概括inode的内容inode包含文件的元信息用stat命令可以查看某个文件的inode信息Linux系统文件三个主要的时间属性目录文件架构 用户通过文件名打开文件时&#xff0c;系统内部的过程查看inode号码的实操硬盘分区后的结构 &#x1f447;用户访…

走向大规模应用之前,DePIN 如何突破技术、数据与市场之网

近期&#xff0c;随着分布式物理基础设施网络&#xff08;DePIN&#xff09;的快速演变&#xff0c;一个旨在利用区块链技术彻底改造传统基础设施模型的新兴生态系统正在逐渐浮现。2024 年 4 月&#xff0c;以 peaq 为代表的 DePIN 项目成功筹集了 1500 万美元用于生态系统的扩…

mac配置maven

在 macOS 上配置 Maven 也相对简单。以下是一种常用的方法&#xff1a; 1. 安装maven **下载 Maven&#xff1a;**首先&#xff0c;你需要从 Maven 官网&#xff08;https://maven.apache.org/download.cgi&#xff09;下载最新版本的 Maven。你可以选择二进制压缩包&#xf…

02.Scala简单演示

Scala创建对象的方法与Java有所不同 class可以直接传入形参&#xff1b; 形式为 变量名称&#xff1a;变量类型 逗号隔开 ** ** 方法定义也比较特殊 ** ** def方法名&#xff08;&#xff09;:返回值 { } 其中返回值Unit 等价于Java中的void

系统服务(22年国赛)—— 磁盘管理(压缩去重)

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; 系统服务&#xff08;22年国赛&#xff09;—— 磁盘管理(压缩&&去重)https://myweb.myskillstree.cn/90.html 目录 StorageSrv 安装并创建vdo 将…

多输入多输出 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机多输入多输出预测

多输入多输出 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现WOA-LSSVM鲸鱼算法优化…

STL_vector源码剖析

STL vector STL2.91源码地址: https://github.com/lewischeng-ms/sgi-stl 侯捷老师用的是 2.91,不同版本的STL差异很大&#xff0c;靠后版本的STL用了太多typedef以及继承关系&#xff0c;导致可读性很差。 本文参考博客: https://blog.csdn.net/weixin_45389639/article/detai…

记账本React案例(Redux管理状态)

文章目录 整体架构流程 环境搭建 创建项目 技术细节 一、别名路径配置 1.路径解析配置&#xff08;webpack&#xff09; &#xff0c;将/解析为src/ 2.路径联想配置&#xff08;vsCode&#xff09;&#xff0c;使用vscode编辑器时&#xff0c;自动联想出来src文件夹下的…

python-excel自动化-openpyxl

openpyxl学习笔记 创建或打开表格存储和遍历数据设置单元格风格过滤器和排序更改工作表的背景颜色合并单元格冻结窗口数字格式公式图像图表条形图折线图散点图 创建或打开表格 # 创建 import datetime from openpyxl import Workbook # 实例化 wb Workbook() # 激活 work…

使用Excel生成sql脚本(insert/update/delete)

目录 前言 一、Excel文件脚本变量 二、操作示例 前言 在系统使用初期&#xff0c;存在某种原因&#xff0c;需要对数据库数据进行批量处理操作。往往都是通过制定Excel表格&#xff0c;通过Excel导入到数据库中&#xff0c;所以就弄一个excel生成sql的导入脚本&#xff0c;希…

探索设计模式的魅力:AI赋能分层模式,解构未来,智领风潮

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 探索设计模式的魅力&#xff1a;AI赋能分层模式&#xff0c;解构未来&#xff0c;智领风潮 ✨欢迎…

【网络安全】安全事件管理处置 — 安全事件处置思路指导

专栏文章索引&#xff1a;网络安全 有问题可私聊&#xff1a;QQ&#xff1a;3375119339 目录 一、处理DDOS事件 1.准备工作 2.预防工作 3.检测与分析 4.限制、消除 5.证据收集 二、处理恶意代码事件 1.准备 2.预防 3.检测与分析 4.限制 5.证据收集 6.消除与恢复 …

【Leetcode】vector刷题

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;Leetcode刷题 目录 1.只出现一次的数字2.杨辉三角3.删除有序数组中的重复项4.只出现一次的数字II5.只出现一次的数字III6.电话号码的字母组合 1.只出现一次的数字 题目链接&#xff1a;136.只出现一…

linux 编译opencv遇到问题

linux编译opencv4.8的时候遇到问题 Error: suffix or operands invalid for vpand看到很多说法是升级as这个工具的版本&#xff0c;自测是从2.20升级到2.27就可以了

python提取date的月份和天数

在Python编程中&#xff0c;经常需要从日期中提取月份和天数。这在数据处理、分析和可视化等领域都是非常常见的操作。 本文将介绍如何使用Python提取日期中的月份和天数&#xff0c;并通过代码示例展示具体的实现方法。 1.使用datetime模块获取日期信息 要提取日期的月份和天…

安卓手机连接电脑实用技巧:实现文件传输与共享

在手机使用过程中&#xff0c;我们常常需要将手机中的文件传输到电脑&#xff0c;或者将手机与电脑进行共享。为了实现这一需求&#xff0c;掌握一些实用的安卓手机连接电脑技巧就显得尤为重要。本文将为您详细介绍2种简单、高效且安全的方法&#xff0c;让您轻松实现安卓手机与…

【Python系列】受保护属性

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Scala 04 —— Scala Puzzle 拓展

Scala 04 —— Scala Puzzle 拓展 文章目录 Scala 04 —— Scala Puzzle 拓展一、占位符二、模式匹配的变量和常量模式三、继承 成员声明的位置结果初始化顺序分析BMember 类BConstructor 类 四、缺省初始值与重载五、Scala的集合操作和集合类型保持一致性第一部分代码解释第二…

VIO外参标定方法总结

一、前言 VIO外参标定是指相机和IMU之间的转移矩阵的确定&#xff0c;包括33的旋转矩阵和3维平移向量。整体上分为离线标定和在线标定两类方法&#xff0c;这篇文章做一个总结&#xff0c;主要是经典的方法&#xff0c;记录其思想。 二、博文链接 1、离线标定方法 最基本的…