python基础(2)—— 基本概念

简介:

1.python第一个程序:Hello world!

    1.1简单的示例:

[root@willis python]# cat hello.py

print "hello world"

[root@willis python]# python hello.py

hello world

从第一行往下依次执行代码

    1.2示例二:以可执行文件运行

[root@willis python]# cat hello.py

#!/usr/bin/env python

print "hello world"

[root@willis python]# chmod +x hello.py

[root@willis python]# ./hello.py

hello world

    1.3输出中文:

[root@willis python]# cat hello.py

#!/usr/bin/env python

print "hello world"

print " 你好,世界!"

[root@willispython]# ./hello.py

File "./hello.py", line 4

SyntaxError: Non-ASCII character '\xe4' in file ./hello.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

# 显式的指定编码:

[root@willis python]# cat hello.py

#!/usr/bin/env python

# coding=utf-8 # 显式指定编码为utf-8

print "hello world"

print " 你好,世界!"

[root@willis python]# ./hello.py

hello world

你好,世界!

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

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

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


2.python 工作模式

交互模式:所有数据都在内存中,数据无法保存。

文本模式:便于修改,推荐。


3.字面常量

单独出现的数字,字符串等

1,"abc",['a',1]

字面常量是解释器里面的一块内存

单独的字面常量是无意义的, 当一块内存没有变量在引用的时候会被自动释放。


4.变量

        变量是一个指向一段内存的符号

        python 里所有的变量都是引用,

        变量命名规范(由数字,字母,下划线组成, 不能以数字开头, 关键字不能作为变量名)

    4.1变量的命名:

变量名有字母、数字、下划线组成

数字不能开头

不可以用关键字 比如 python

a a1 a_1 _a

    4.2变量的赋值:

是变量的声明和定义的过程

a = 1 a 为标签 1 为内存中存储的值

id(a) 查看 a 标签在内存中地址

    4.3变量重新赋值

In [1]: i=1

In [2]: id(i)

Out[2]: 36519016

In [3]: i=3

In [4]: id(i)

Out[4]: 36518968

    4.4 .123 和 456 存在于不同的内存空间,在重新赋值的时候是把标签移了一个位置,这与 c 语言相反。

In [5]: a=123

In [6]: id(a)

Out[6]: 36522064

In [7]: b=123

In [8]: id(b)

Out[8]: 36522064

    同样的内存地址空间可以有多个不同的标签


5.数据类型

        python是一种强类型的动态语言,每一个数据都有一个类型,不同类型之间的数据不能做运算,如数字和字符不能相加.所谓的动态语言是指,数据类型可以在运算时改变.

>>> v1 = 1

>>> type(v1)

<type 'int'>

>>> v1 = "string"

>>> type(v1)

<type 'str'>

# 在C 中是绝对不能这么做的

# 不同类型的数据不能做运算

>>> v1 = "string"

>>> type(v1)

<type 'str'>

>>> v2 = 1

>>> v1+v2

Traceback (most recent call last):

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

TypeError: cannot concatenate 'str' and 'int' objects

        数据类型,不同的数据类型的二进制是不一样的,为了能让解释器知道这段内存是什么,所以要定义数据类型,也就是规范了数据存放的二进制格式。

        在python中分为数字类型和字符串类型,数字又分为:整型,长整型和浮点型.还有不常用类型虚数类型

>> a = 1.1

>>> type(a)

<type 'float'>

# 字符串连接

>>> s1 = 'hello'

>>> s2 = ' world'

>>> s = s1 + s2

>>> s

'hello world'

        类型转化,float要比int精度要高,从低精度向高精度转换是没有数据损失的,从高精度转向低精度会有损失。

>>> a=3

>>> type(a)

<type 'int'>

>>> a=float(3)

>>> type(a)

<type 'float'>

>>> a=str(3)

>>> type(a)

<type 'str'>


6.运算符与表达式

算术运算符 + * / ** // % 

位操作运算符<<  >>  &  |  ^  ~ 

比较运算符 <  <=  >=  ==  >  != 

逻辑运算符 and or not 

赋值运算符 =  +=  -=  *=  /=

其他运算符

    6.1 数学运算符,

>>> 10 /3 # 两个整型相除的时候,等到的还是整型, 会有精度损失

3

# 将其中一个转换为float, 会等到一个float 型

>>> 10 /float(3)

3.3333333333333335

# 幂运算

>>> 2**101024

# 除法取整

>>> 10 // 3.0

3.0 # 只取整部分

# 取模运

>>> 10 % 3

1

    6.2 位运算符:

>>> 2 << 3 #2 左移3 位,(10 --->10 000)

16

# 位运算速度比较快

# 按位与 &

>>> 3 & 2

2

# 安位或 |

>>> 3 | 2

3

# 异或, 两个位置相同取1 ,不同则取0

>>> 3 ^ 2

1

比较运算符,与其他语言都相同

逻辑运算符,与其他语言类似,只是写法不同

赋值运算符,与其他语言相同 a = 1 ,想a符号指向该数据存在的内存

    6.3表达式

        由运算符,连接起来的变量或者常量,构成表达式,如 a = 1和 c = a1 + b2

    6.4表达式优先级

        单目运算符高于双目运算符,not例外; 单目运算符,只有一个数的运算符,如正负号,按位取反,not .python里没有三目运算符

        算数运算符高于位运算符:

        位运算符高于比较运算符

        比较运算符高于逻辑运算符

        赋值运算符优先级最低

>>> 1 + 2 << 2

12

>>> 3 << 2

12

# 先加再移位

# 位运算符高于比较运算符

>>> 2 << 2 < 6

False

() 可以提升运算符的优先级,某些情况为了程序的可读性也要有小括号


本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1854702,如需转载请自行联系原作者

相关文章
|
5月前
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
745 31
|
存储 数据挖掘 数据库
探索Python编程:从基础到高级探索移动应用开发之旅:从概念到实现
【8月更文挑战第29天】本文将带你进入Python的世界,无论你是初学者还是有一定经验的开发者。我们将从Python的基础知识开始,然后逐步深入到更复杂的主题。你将学习到如何编写清晰、高效的代码,以及如何使用Python进行数据分析和网络编程。最后,我们将介绍一些高级主题,如装饰器和生成器。让我们一起开始这段旅程吧!
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析入门涉及基础如Python语言、数据分析概念及优势。
【7月更文挑战第5天】Python数据分析入门涉及基础如Python语言、数据分析概念及优势。关键工具包括NumPy(数组操作)、Pandas(数据处理)、Matplotlib(绘图)、Seaborn(高级可视化)和Scikit-learn(机器学习)。流程涵盖数据获取、清洗、探索、建模、评估和展示。学习和实践这些将助你有效利用数据。
115 2
|
分布式计算 并行计算 安全
在Python Web开发中,Python的全局解释器锁(Global Interpreter Lock,简称GIL)是一个核心概念,它直接影响了Python程序在多线程环境下的执行效率和性能表现
【6月更文挑战第30天】Python的GIL是CPython中的全局锁,限制了多线程并行执行,尤其是在多核CPU上。GIL确保同一时间仅有一个线程执行Python字节码,导致CPU密集型任务时多线程无法充分利用多核,反而可能因上下文切换降低性能。然而,I/O密集型任务仍能受益于线程交替执行。为利用多核,开发者常选择多进程、异步IO或使用不受GIL限制的Python实现。在Web开发中,理解GIL对于优化并发性能至关重要。
185 0
|
10月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
347 8
|
12月前
|
测试技术 Python
探索Python中的装饰器:从基础概念到高级应用
本文深入探讨了Python中一个强大而灵活的特性——装饰器。从其基本定义出发,逐步解析装饰器的本质、运作机制以及如何高效利用这一工具来优化代码结构、增加功能和提升代码的可读性与可维护性。通过具体示例,包括自定义简单装饰器、带参数装饰器、多重装饰等高级话题,本文展示了装饰器在软件开发中的广泛应用,旨在为读者提供一个全面而实用的装饰器使用指南。
|
前端开发 JavaScript 数据可视化
Python+Dash快速web应用开发——基础概念篇
Python+Dash快速web应用开发——基础概念篇
384 3
|
Python
Python函数式编程:你真的懂了吗?理解核心概念,实践高阶技巧,这篇文章带你一次搞定!
【8月更文挑战第6天】本文介绍了Python中的函数式编程,探讨了高阶函数、纯函数、匿名函数、不可变数据结构及递归等核心概念。通过具体示例展示了如何利用`map()`和`filter()`等内置函数处理数据,解释了纯函数的一致性和可预测性特点,并演示了使用`lambda`创建简短函数的方法。此外,文章还强调了使用不可变数据结构的重要性,并通过递归函数实例说明了递归的基本原理。掌握这些技巧有助于编写更清晰、模块化的代码。
171 3
|
缓存 Python
探索Python中的装饰器:从概念到实战
【8月更文挑战第31天】装饰器,在Python中是一种强大的工具,能够让我们轻松地修改函数或类的行为。本文将带你从零开始理解装饰器的概念,并通过实际代码示例展示如何创建和使用它们。我们将一步步构建一个日志记录装饰器,并探讨其对提升代码可读性和重用性的影响。通过本文的学习,你将能够自信地在你的Python项目中应用装饰器技术。

推荐镜像

更多