#######python########

python的基本

[root@desktop ~]# yum install python -y

[root@desktop ~]# python -V    ##查看python版本

Python 2.7.5

[root@desktop ~]# python --version

Python 2.7.5

为什么用/usr/bin/python

关于python脚本中的第一行内容 :

#!/usr/bin/python 这种写法表示直接引用系统的默认的 Python 版本,这样的话python 程序移植到其他机器上可能运行的时候有问题,因为别人系统默认的 Python版本与你预期的并不一致。

#!/usr/bin/env python 这种写法表示,引用环境变量里面自定义的Python 版本,具有较强的可移植性,推荐这种写法。

##交互使用python

当在shell命令行输入python命令会进入一个交互式的python编程环境

[root@desktop ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a=1

>>> print a     ##python沿袭了C语言的很多用法,输出一字符串,使用print;

1

>>>##退出python的交互式环境通过快捷键ctrl+d或者使用exit()函数;

[root@desktop ~]# vim 1.py

#!/bin/env python

# coding:utf-8    ##指定编码格式(四个任意一个都可以)

# coding=utf-8

# encoding:uft-8

# encoding=utf-8

#定义变量a,值为1

a=1

print a

[root@desktop ~]# chmod +x 1.py ##加上执行权限

[root@desktop ~]# python 1.py

1

理解字符编码

ASCII:美国人发明了计算机,用二进制存储数据,英文字母加各个字符一共128个,每8位存储一个字符,2^8=256,可通过  ord()  函数去查看字符对应的ASCII码。

Unicode:但是ASCII码忽略了中文,韩文,日文等其他国家的文字,这个时候256个字符的对应关系明显是不够用的,这时候就用两个字节对应一个文字,2**16=65536.

UTF-8:英文字符明明可以通过一个字节存储,Unicode却需要2个字节来存储,对于存储比较小的计算机来说,是浪费很多不必要占用的空间,这个时候就出现utf-8。那么什么是utf-8呢?简单来说就是可变长度编码格式,英文字符用ASCII码来存,而中文呢,就用utf-8来存,这个时候中文就不是两个字节存储,而是三个字节来存。

ASCII:1字节=8位    2^8=256;

Unicode:2字节=16位,2^16=65536  a --> 2字节   中文 --> 2字节;

uft-8: a --> 1字节   中文 --> 3字节

GB2312: 2字节

[root@desktop ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a='westos'

>>> type(a)

<type 'str'>    ##类型:字符串

>>> b=u'westos'    ##加上u类型会发生改变

>>> type(b)    ##类型:unicode

<type 'unicode'>

内存读取: Unicode(encode) ##不能一个字节三个字节跳换,不符合读取规则

存在硬盘: utf-8(decode)

当存储数据到硬盘,需要考虑到节省空间的问题,所以采用utf-8格式进行存储;

当将数据读入内存时,统一一个编码格式便于操作,采用unicode编码格式;

在给客户看的时候,会有注释,会出现英中文交汇,为了方便操作,采用unicode编码格式,在存储数据到硬盘时候,为了节约空间,采用utf-8进行存储。

字符的编码:将Unicode转化成utf-8(字符串)

字符的解码:针对uft-8而言,将utf-8转换成Unicode

>>> name_unicode = u"高手"

>>> type (name_unicode)

<type 'unicode'>

>>> name_utf8 = name_unicode.encode('utf-8')    ##字符的编码(encode是把之前的unicode编码为utf-8)

>>> type(name_utf8)

<type 'str'>

>>> name_unicode1 = name_utf8.decode('utf-8')    ##字符的解码(decode是把之前的utf-8解码为unicode)

>>> type(name_unicode1)

<type 'unicode'>

>>>

# 定义一变量,编码格式为unicode

>>> name_unicode = u'粉条'

>>> type(name_unicode)

<type 'unicode'>

# 字符的编码,从unicode到utf-8格式

>>> name_utf8 = name_unicode.encode('utf-8')

>>> type(name_utf8)

<type 'str'>

# 字符的解码操作,从utf-8解码到unicode编码格式

>>> name_to_unicode = name_utf8.decode('utf-8')

>>> type(name_to_unicode)

<type 'unicode'>

ipython:对python在一定程度上进行了优化

python的解释器:

cpython

安装ipython。

pycharm安装python编辑器

python与c的区别

脚本编写C:

[root@desktop mnt]# vim 1.c

[root@desktop mnt]# chmod +x 1.c

[root@desktop mnt]# gcc 1.c -o 1.1.c

[root@desktop mnt]# ./1.1.c

hello!

[root@desktop mnt]# cat 1.c

#include <stdio.h>

void hello(){

printf("hello!");

}

void main(){

hello();

}

编写python:

[root@desktop mnt]# vim 2.py

[root@desktop mnt]# chmod +x 2.py

[root@desktop mnt]# ./2.py

hello

wm

[root@desktop mnt]# cat 2.py

#!/usr/bin/env python

def hello():

print "hello"

def main():

hello()

print "wm"

main()

根据上面的两个不同编程语言实现同一功能的分析,总结python编程初级要掌握的编程风格如下:

1)不要在行尾加分号;

2)每行不超过80个字符;

3)Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。

4)增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。

练习:

编写简单的python输入x=10

若x大于0,输出x是正数,同时输出x-10

若x小于0,输出x是负数,同时输出x+10

否则,输出x是0

#!/usr/bin/env python

#coding:utf-8

__author__ = "aely"##作者

'''##以下内容可以在设置里面设置模板

@author:haoning##编写者

@file:333.py##文件名

@contact:1371975@qq.com##联系人

@time:6/25/171:42 PM##编写时间

'''

x=10

if x>0:

print "x是正数"

b= x-10

print b

elif x<0:

print "x是负数"

c= x+10

print c

else:

print "x是0"

python注释

单行注释:  #  常被用作单行注释符号,  #  开头的行,其右边的任何数据都会被忽略,当做是注释。

块注释: 需要批量文本或代码时,使用三引号  ''' '''  .,当然三引号也可以实现多行文本格式化打印。

在python里面打开python Console

In[2]: print 1

1

In[3]: print "ha"

ha

In[4]: print "wq521"

wq521

In[5]: print 1>2

False

In[6]: print 19+13

32

In[7]: raw_input()

>? hello

Out[7]: 'hello'

In[8]: print raw_input

<built-in function raw_input>

In[9]: name = raw_input("NAME:")

NAME:>? haha

In[10]: print name

haha

In[11]: name = raw_input("Age")

Age>? 3

In[13]: print name

3

In[14]: age = raw_input("Age")

Age>? 3

In[15]: name = raw_input("NAME:")

NAME:>? haha

In[16]: type(age)

Out[16]: str

In[17]: age = input('Age')

Age>? 4

In[18]: type(age)

Out[18]: int

In[19]: print age>10

False

In[20]: print age=10

File "<ipython-input-20-87481056a110>", line 1

print age=10

^

SyntaxError: invalid syntax

In[21]: print age<10

True

练习(要求):

小练习: 编写一程序,录入信息包括  hostname、IP、used_year、CPU、Memory、manager_name  ,如果使用年限超过10年,直接显示警告信息“该服务器使用年限太久!”,如果使用年限不超过10年,显示该服务器信息如下面的格式如下:

主机信息

主机名: hostname

IP:IP

使用年限:used_year

CPU:CPU

Memory:Memory

编程如下:

#!/usr/bin/env python

#coding:utf-8

__author__ = "aely"

'''

@author:haoning

@file:text.py

@contact:1371975@qq.com

@time:6/25/173:10 PM

'''

hostname = raw_input("主机名:")

IP = raw_input('IP:')

user_year = input('user_year:')

CPU = raw_input('CPU:')

Memory = raw_input('Memory:')

manager_name = raw_input('manager_name:')

if user_year>10:

print("该服务器使用年限太久!")

exit()

else:

haha = '''

主机信息

主机名:%s

IP:%s

使用年限:%d

CPU:%s

Memory:%s

manager_name:%s

''' %(hostname,IP,user_year,CPU,Memory,manager_name)

print haha

测试:

/usr/bin/python2.7 /home/kiosk/PycharmProjects/1/text.py

主机名:hostname##交互式输入

IP:172.25.254.39

user_year:6

CPU:i5

Memory:8G

manager_name:hao

主机信息##自动显示

主机名:hostname

IP:172.25.254.39

使用年限:6

CPU:i5

Memory:8G

manager_name:hao

Process finished with exit code 0

python的垃圾回收机制

1)Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会消失,分配给该对象的内存就会释放出来用作他用。

2)PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少.引用计数为0时,该对象生命就结束了

变量命名方式:下划线/数字/字母/(不能以数字开头)

>>> a=1

>>> print a

1

>>> a_1 = 111

>>> _a = 222

>>> print _a

222

>>> 1a = 111

File "<stdin>", line 1

1a = 111

^

SyntaxError: invalid syntax        //指语法错误,无效的语法

>>> a = 5

>>> b = 3>>> print a + b

8

>>> print a + b +c

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'c' is not defined        //名称错误

运算符与表达式

赋值运算符:=, +=, -=, /=, *=, %=

>>> a=1

>>> print a

1

算术运算符:+, -, , /, //, %, *

>>> 1 + 1

2

>>> 1 - 1

0

>>> 1 * 3

3

>>> 1 / 2##整型的都为整型

0

>>> 1.0 / 2##存在浮点型的,运算结果会出现浮点

0.5

>>> 1.0 // 2

0.0

>>> 1 % 2

1

>>> 2 ** 3

8

>>> a33 = 3 ** 3

>>> print a33

27

>>> print "a33=",a33

a33= 27

关系运算符: >, >=, <, <=, !=, ==

布尔值:1 < 2,返回一个布尔类型的结果

>>> 1 < 2

True

>>> 1 > 2

False

逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not

1本身代表True

2本身代表False

练习:

编写一个四则表达式:

#!/usr/bin/env python

#coding:utf-8

from __future__ import division##引入一个模块,使得整数除法也能输出准确的数字

__author__ = "aely"

'''

@author:haoning

@file:yunsuan.py

@contact:1371975@qq.com

@time:6/25/173:50 PM

'''

number1 = input("num1=")

operate = raw_input("operate=")

number2 = input("num2=")

if operate == "+":

print number1 + number2

elif operate == "-":

print number1 - number2

elif operate == "*":

print number1 * number2

elif operate == "/":

print number1 / number2

else :

print "请重新其他输入简单的运算符+,-,*,/"

测试:

a.运算符的测试

/usr/bin/python2.7 /home/kiosk/PycharmProjects/1/yunsuan.py

num1=5

operate=**

num2=7

请重新其他输入简单的运算符+,-,*,/

Process finished with exit code 0

b.加了模块后除法的精确运算

[kiosk@foundation39 1]$ python yunsuan.py

num1=5

operate=/

num2=3

1.66666666667

In [1]: num = 1L##强制把1定义为长整型

In [2]: type(num)

Out[2]: long

In [3]: a='''##'''格式化输出

...: jaja

...: xixi

...: wq

...: 123

...: '''

In [4]: print a

jaja

xixi

wq

123

In [5]: a='hello westos'

In [6]: a[0]##查询a字符串的第0个字母

Out[6]: 'h'

In [7]: a[0:4:2]##从0开始到4结束,步长为2

Out[7]: 'hl'

In [8]: a[-4:-1:2]##-4即从最后开始数,最后一位是-1

Out[8]: 'so'

In [9]: a[-4:-1:1]

Out[9]: 'sto'

In [10]: b='aqqehw'

In [11]: b[5]+b[2]+b[0]##b的第5第2第0位相取

Out[11]: 'wqa'

In [12]: t='123','qwe','sa'##如果用,隔开那么取整块

In [13]: t[1]

Out[13]: 'qwe'

转载于:https://blog.51cto.com/12768057/1942057

Python基础--环境配置、编码风格、基础概念、基本数据类型(1)相关推荐

  1. python基础环境配置教程

    python基础环境配置教程 下载vscode 1.输入网址:https://code.visualstudio.com/ 2.下载windows版vscode并安装. 下载慢的话在自己的浏览器中找到 ...

  2. 【深度之眼PyTorch框架班第五期】作业打卡01:PyTorch简介及环境配置;PyTorch基础数据结构——张量

    文章目录 任务名称 任务简介 详细说明 作业 1. 安装anaconda,pycharm, CUDA+CuDNN(可选),虚拟环境,pytorch,并实现hello pytorch查看pytorch的 ...

  3. PyTorch强化学习实战(1)——强化学习环境配置与PyTorch基础

    PyTorch强化学习实战(1)--强化学习环境配置与PyTorch基础 0. 前言 1. 搭建 PyTorch 环境 2. OpenAI Gym简介与安装 3. 模拟 Atari 环境 4. 模拟 ...

  4. AMASLAB-EPIC-KBS工控机Ubuntu基础环境配置

    AMASLAB-EPIC-KBS工控机Ubuntu基础环境配置 本文以Ubuntu18.04为例,介绍如何在新装的Ubuntu系统上进行一些基础的环境配置: 相关的环境有:WIFI配置.双屏幕配置(独 ...

  5. OpenStack 的部署T版(一)——基础环境配置

    目录 一.资源规划 二.基础环境配置 1.修改添加NAT网卡配置 2.防火墙.核心防护.主机名 3.配置在线源 4.基础环境依赖包 5.VMnet1网卡配置参数 6.配置映射 7.免交互 8.时间同步 ...

  6. 【No.1 Ionic】基础环境配置

    Node 安装 git clone https://github.com/nodejs/node cd node ./configure make sudo make install node -v ...

  7. Hadoop高可用集群搭建-1、服务器等基础环境配置

    1. 服务器集群 hostname IP user password path os spark01 192.168.0.201 hadoopadmin java home/hadoopadmin U ...

  8. webpack1.x环境配置与打包基础【附带各种 “坑“ 与解决方案!持续更新中...】

    webpack1.x环境配置与打包基础[附带各种 "坑" 与解决方案!持续更新中...] 参考文章: (1)webpack1.x环境配置与打包基础[附带各种 "坑&quo ...

  9. 不过如此! jdk 的安装/配置环境变量 jdk与openjdk 的区别 jdk 官网下载所需账号密码 虚拟机基础环境配置 超详细安装教程/介绍 Ubuntu18.04 SDN软件定义网络实验

    前情提要:我们已经完成了虚拟机的联网.ssh + vmtools + net-tools + vim的基础环境配置.接下来将进行jdk的安装与环境变量的配置,并介绍jdk与openjdk的区别,分享一 ...

  10. 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)

    从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自  : 从零开始搭建深度学习服务器: 基础环境配置( ...

最新文章

  1. New Phytologist:王建军等综述全球变化下的山地微生物组和生态系统功能
  2. IT新人如何快速成长
  3. idea 创建java文件_idea创建java文件 格式不对
  4. [Linux] Ubuntu下的文件比较工具--meld
  5. js 弹出框 背景不滑动 方案
  6. php 安装zip,php zip拓展安装
  7. 京东怎么在线联系客服
  8. 【Vue3.0】—V- model‘ directives require no argument.
  9. 因财务造假,贾跃亭被罚 2.41 亿元;华为徐直军重申不造成:但将推子品牌汽车;Gradle 7.0 发布|极客头条...
  10. python实例化次数怎么算_关于python多次实例化
  11. matlab 找椭圆中心点,点差分法matlab解椭圆型偏微分方程
  12. JAVA打印数组的四种方法
  13. 五、BD09(百度坐标系)
  14. 【C语言】牛顿切线公式计算 a 的立方根 02
  15. vulhub漏洞复现- ActiveMQ 反序列化漏洞(CVE-2015-5254)
  16. 计算机按键截图,电脑按什么键自由截图(电脑截屏的快捷键是什么)
  17. python Crypto.Cipher
  18. c语言 饱和加法,[转载]优化饱和加法运算
  19. mysql怎样添加一条数据_sql语句怎么添加一条记录?
  20. 免费PPT模板下载(不定时更新)

热门文章

  1. matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号
  2. oracle rollup分组没有数据时为0_数据库周刊19│GBASE适配鲲鹏;MySQL窗口函数;OGG双向数据同步……...
  3. php如何实现购物时数量增减,1、vuex状态管理--购物车数量增减
  4. ie8不兼容java项目_常见IE8兼容性问题及解决
  5. php asp 发起post请求,PHP用curl函数POST请求到ASP页面提示无效请求
  6. 占用系统资源测试_高频性能测试面试题15道
  7. HttpUrlConnection发送url请求(后台springmvc)
  8. 利用STM32制作红外测温仪之软件设计(MLX90614)
  9. 剪切文件_转录组测序技术和结果解读(十六)——可变剪切
  10. java 百度poi_Android应用中使用百度地图API之POI(三)