Python3 学习第一天总结
一、python介绍
1.python是一门动态解释性的强类型定义语言;
简单解释一下:
定义变量不需要定义类型的为动态语言:典型的有Python和Ruby,反之定义变量需要定义类型的为静态语言:典型的有Java,C、C++;
解释型对应还有种编译型语言:(以java为类)编译型语言需要把我们编写的源代码文件.java通过编译器 编译成可执行的.class文件,才可以运行,也就是说必须把所有源文件全部编译成可执行文件才可以运行程序,而解释性语言是一边编译一边执行,不需要把所有的编译完在执行,Python就是这样的一种语言
强类型定义语言是指变量一旦指定某个数据类型,不经过强行转化一直保持这个类型,是类型安全语言;弱类型定义语言与之相反;
注意:强类型定义语言在速度上逊色于弱类型语言,但是可以有效的避免很多错误。一门语言是否安全与是否动态语言没有任何关系,比如java就是静态语言,但也是强类型语言,也是类型安全语言
2.python语言的优缺点:
优点:1>Python的定位是"优雅"、"明确"、"简单"
2>开发效率非常高
3>高级语言
4>可移植性
5>可扩展性
6>可嵌入性
缺点:1>速度慢
2>代码不能加密
3>线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
3.Python解释器:
CPython、IPython、PyPy(运行速度快)、JPython、IronPython
Python解释器很多,但是用最广泛的还是CPython,如果要和java或者.net平台交互,做好的办法不是使用JPython或IronPytho,而是通过网络交互,确保各程序之间的独立性。
二、Python基础语法
1.Python源文件头部 #!/usr/bin/python 和 #!/usr/bin/env python 的区别
前者表示写死了目录就是/usr/bin/python,这样写不利于可移植性;后者是去机器的path路径中找指定的第一个python来执行你的脚本;
2.变量定义;
1>python每行代码结束不用加分号,加也不会报错
2>不需要申明数据类型,直接定义例如:name=“Helllo world”
3>常亮定义时,变量名大写 例如:PIP=1
4>变量名规则和java一样,字母数字下划线,不能以数字开头,不能用python关键词,对于多个单词组成的变量名,官方建议用下划线连接;但是驼峰式也是正确的1。
3.python输出:
1>在python3里面为print() 在python2里面直接print"" 就可以
2>同时输出多个,可用逗号分隔,也可以用加号连接;
4.python注释:
1>单行注释用井号 #
2>多好注释前后三个引号 ''' ''' 或者 """ """
3>三个引号也可以用于多个字符串的输出
5.字符编码:
1>python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
2>ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
3>ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode;
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
4>python3中默认编码格式为Unicode;指定编码格式# -*- coding: utf-8 -*-

6.用户输入;
1>用input()函数 例如 name=input(name:)
2>可以用三个引号格式化输出;例如

3>除了用加号拼结字符串,还可以利用占位符 %s(字符型),%d(必须整型),%f(浮点型)来拼结接字符串;
所有输入的类型默认为str类型,转整型用 int() ,转字符串用 str() 例如 :

4>python中打印数据类型用函数type() 例如 : print(type(22))
5>最常用的两种字符串 :

6>密文输入密码,需要导入表中模块 getpass中的getpass方法,但这个方法在工具PyCharm中不好使,可以在python自带的命令行中执行

7.python中的if条件语法: if 条件 冒号 elif 条件 冒号 else 冒号

8.python中white的语法 white 条件 冒号 else 冒号

9.python中for循环语法 for i in range() 冒号 else 冒号

10.for循环特殊用法:for i in rang(起始数,结束数,间隔数)

11.sys模块和os模块介绍
1>#path: 系统环境变量
print(sys.path)
2>#argv 获取当前文件的绝对路径
print(sys.argv)
3>#os.system调用当前系统的命令,但是只是执行命令,不保存结果
cmd_rs=os.system('dir')
os.system('ping')
4>#popen()执行命令并保存结果,必须使用read()方法读取
cmd_rs=os.popen('dir').read()
print('=======>',cmd_rs)
5>#os.makedirs创建多级目录,相对路径就是当前目录下创建,也可以写绝对路径
os.makedirs('new_python\\files_1\\files_2\\files_3')
os.makedirs('d:\\new_python\\files_1\\files_2\\files_3')
6>#删除多级目录
os.removedirs()
os.removedirs('new_python\\files_1\\files_2\\files_3')
7>#os.makedirs创建目录,相对路径就是当前目录下创建,也可以写绝对路径
os.mkdir('new_files')
os.mkdir('d:\\new_files')
8>#os.rmdir() 删除目录
os.rmdir('new_files')
12.复数complex 由实数部分和虚数部分组成,X+Yj ,其中X,Y都是实数,j是虚数单位,数学中用i表示,工程领域用j表示,j^2=-1
2018-06-23 11:24:22
Python3 学习第一天总结的更多相关文章
- Python3 学习第一弹:基本数据类型
本人学习主要从<python基础教程第二版>,<dive into python3>等书籍,及一些网上大牛的博客中学习特别是Python官方文档<Python Tutor ...
- Python3学习(1)-基础篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...
- python学习第一讲,python简介
目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...
- python3学习笔记(5)_slice
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...
- python012 Python3 编程第一步
Python3 编程第一步在前面的教程中我们已经学习了一些 Python3 的基本语法知识,下面我们尝试来写一个斐波纳契数列.实例如下: #!/usr/bin/python3 # Fibonacci ...
- Magento学习第一课——目录结构介绍
Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...
- YII2学习第一天
YII2学习第一天,之前稍微看了看TP,感觉和自己的理念不是很符合,然后转学YII2了. 使用的文档是https://github.com/yiisoft/yii2/tree/master/docs/ ...
- Java学习第一天
Java学习第一天 对于网络管理员或者黑客必须知道的八个cmd命令 详情请参考:http://www.2cto.com/os/201608/533964.html nbtstat ...
- 一、Android学习第一天——环境搭建(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第一天——环境搭建 Android 开发环境的搭建 ...
随机推荐
- dev_queue_xmit 发生了什么?skb还会在哪里缓存
见 codebox/net/qdisk/xmit.log中保存了一份记录 调用关系 sch_direct_xmit --> dev_hard_start_xmit --> xmit_one ...
- 创建udp服务端对象
DatagramSocket ds = null;//创建服务器对象 ds = new DatagramSocket(10001);//创建对象并指定端口 byte[] bytes = new byt ...
- 【bzoj4715】囚人的旋律 dp
题目描述 给你一个 $1\sim n$ 的排列 $a_i$ ,若 $i\le j$ 且 $a_i\ge a_j$ ,则 $i$ 到 $j$ 有一条边.现在给你这张图,求既是独立集(任意两个选定点都没有 ...
- 【bzoj1010】[HNOI2008]玩具装箱toy 斜率优化dp
题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...
- 【bzoj2938】[Poi2000]病毒 AC自动机
题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段,试问,是否 ...
- BZOJ4767 两双手(组合数学+容斥原理)
因为保证了两向量不共线,平面内任何一个向量都被这两个向量唯一表示.问题变为一张有障碍点的网格图由左上走到右下的方案数. 到达终点所需步数显然是平方级别的,没法直接递推.注意到障碍点数量很少,那么考虑容 ...
- Gevent-自动挡切换
Gevent: Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程. G ...
- PowerDesigner 技巧【1】
Name与Code同步的问题: PowerDesigner中,修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名. 解决方法如下: 1.选 ...
- Navicat新建查询快捷键
在Navicat中,我们选中一个表,双击打开,这是如果要新建查询这个表的sql语句,可以直接用快捷键 ctrl+q 会自动打开查询窗口,并直接写好 sql:select * from (当前打开的表 ...
- STL之一:字符串用法详解
转载于:http://blog.csdn.net/longshengguoji/article/details/8539471 字符串是程序设计中最复杂的变成内容之一.STL string类提供了强大 ...