首页 后端开发 Python教程 Python自动化开发:循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作详细介绍

Python自动化开发:循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作详细介绍

Mar 15, 2017 pm 01:08 PM
python

计数器的作用可以在死循环中,符合条件的情况下做自动退出中断

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time    : 2017/3/14 11:23
# @Author  : eason
# @File    : guest_lucknum.py.py
lucky_num = 19
input_num = -1
guset_num = 0
while guset_num<3:
    input_num = int(raw_input("Input the guess num:"))
    if input_num > lucky_num:
        print("the real number is smaller.")
    elif input_num < lucky_num:
        print("the real num is bigger...")
    else:
        print("Bingo!")
        break
    guset_num += 1
else:
    print("Too many retrys!")
登录后复制

得到的结果

C:\Python27\python.exe D:/worklog/pytools/s12/day1/guest_lucknum_limit.py
Input the guess num:10
the real num is bigger...
Input the guess num:19
Bingo!

使用for替代,可以免去计数的方式

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time    : 2017/3/14 11:23
# @Author  : eason
# @File    : guest_lucknum.py.py
lucky_num = 19
input_num = -1
for i in range(3):
    input_num = int(raw_input("Input the guess num:"))
    if input_num > lucky_num:
        print("the real number is smaller.")
    elif input_num < lucky_num:
        print("the real num is bigger...")
    else:
        print("Bingo!")
        break
else:
    print("Too many retrys!")
登录后复制

常用的数据类型

Python自动化开发:循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作详细介绍

具体的解释,在廖雪峰的博客中有摘记,在这里贴上地址及内容

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000

数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:

整数

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

字符串

字符串是以单引号&#39;或双引号"括起来的任意文本,比如&#39;abc&#39;,"xyz"等等。请注意,&#39;&#39;或""本身只是一种表示方式,不是字符串的一部分,因此,字符串&#39;abc&#39;只有a,b,c这3个字符。如果&#39;本身也是一个字符,那就可以用""括起来,比如"I&#39;m OK"包含的字符是I,&#39;,m,空格,O,K这6个字符。

如果字符串内部既包含&#39;又包含"怎么办?可以用转义字符\来标识,比如:

&#39;I\&#39;m \"OK\"!&#39;
表示的字符串内容是:

I&#39;m "OK"!
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串看看:

>>> print(&#39;I\&#39;m ok.&#39;)
I&#39;m ok.
>>> print(&#39;I\&#39;m learning\nPython.&#39;)
I&#39;m learning
Python.
>>> print(&#39;\\\n\\&#39;)
\
\
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r&#39;&#39;表示&#39;&#39;内部的字符串默认不转义,可以自己试试:

>>> print(&#39;\\\t\\&#39;)
\       \
>>> print(r&#39;\\\t\\&#39;)
\\\t\\
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用&#39;&#39;&#39;...&#39;&#39;&#39;的格式表示多行内容,可以自己试试:

>>> print(&#39;&#39;&#39;line1
... line2
... line3&#39;&#39;&#39;)
line1
line2
line3
上面是在交互式命令行内输入,注意在输入多行内容时,提示符由>>>变为...,提示你可以接着上一行输入。如果写成程序,就是:

print(&#39;&#39;&#39;line1
line2
line3&#39;&#39;&#39;)
多行字符串&#39;&#39;&#39;...&#39;&#39;&#39;还可以在前面加上r使用,请自行测试。

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False
布尔值可以用and、or和not运算。

and运算是与运算,只有所有都为True,and运算结果才是True:

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True
or运算是或运算,只要其中有一个为True,or运算结果就是True:

>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True
not运算是非运算,它是一个单目运算符,把True变成False,False变成True:

>>> not True
False
>>> not False
True
>>> not 1 > 2
True
布尔值经常用在条件判断中,比如:

if age >= 18:
    print(&#39;adult&#39;)
else:
    print(&#39;teenager&#39;)
空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,我们后面会继续讲到。

变量

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:

a = 1
变量a是一个整数。

t_007 = &#39;T007&#39;
变量t_007是一个字符串。

Answer = True
变量Answer是一个布尔值True。

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123 # a是整数
print(a)
a = &#39;ABC&#39; # a变为字符串
print(a)
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123; // a是整数类型变量
a = "ABC"; // 错误:不能把字符串赋给整型变量
和静态语言相比,动态语言更灵活,就是这个原因。

请不要把赋值语句的等号等同于数学的等号。比如下面的代码:

x = 10
x = x + 2
如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋给变量x。由于x之前的值是10,重新赋值后,x的值变成12。

最后,理解变量在计算机内存中的表示也非常重要。当我们写:

a = &#39;ABC&#39;
时,Python解释器干了两件事情:

在内存中创建了一个&#39;ABC&#39;的字符串;

在内存中创建了一个名为a的变量,并把它指向&#39;ABC&#39;。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = &#39;ABC&#39;
b = a
a = &#39;XYZ&#39;
print(b)
最后一行打印出变量b的内容到底是&#39;ABC&#39;呢还是&#39;XYZ&#39;?如果从数学意义上理解,就会错误地得出b和a相同,也应该是&#39;XYZ&#39;,但实际上b的值是&#39;ABC&#39;,让我们一行一行地执行代码,就可以看到到底发生了什么事:

执行a = &#39;ABC&#39;,解释器创建了字符串&#39;ABC&#39;和变量a,并把a指向&#39;ABC&#39;:

py-var-code-1

执行b = a,解释器创建了变量b,并把b指向a指向的字符串&#39;ABC&#39;:

py-var-code-2

执行a = &#39;XYZ&#39;,解释器创建了字符串&#39;XYZ&#39;,并把a的指向改为&#39;XYZ&#39;,但b并没有更改:

py-var-code-3

所以,最后打印变量b的结果自然是&#39;ABC&#39;了。

常量

所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:

PI = 3.14159265359
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。

最后解释一下整数的除法为什么也是精确的。在Python中,有两种除法,一种除法是/:

>>> 10 / 3
3.3333333333333335
/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>> 9 / 3
3.0
还有一种除法是//,称为地板除,两个整数的除法仍然是整数:

>>> 10 // 3
3
你没有看错,整数的地板除//永远是整数,即使除不尽。要做精确的除法,使用/就可以。

因为//除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:

>>> 10 % 3
1
无论整数做//除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。
登录后复制

  

格式化字符串

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time    : 2017/3/15 10:39
# @Author  : eason
# @File    : string_format.py

name = raw_input("name:")
age = raw_input("age:")
job = raw_input("job:")

msg = &#39;&#39;&#39;
Information of %s:
    Name:%s
    Age:%s
    Job:%s
&#39;&#39;&#39;%(name,name,age,job)
print(msg)
登录后复制

结果为

C:\Python27\python.exe D:/worklog/pytools/s12/day1/string_format.py
name:eason
age:30
job:it

Information of eason:
Name:eason
Age:30
Job:it

字符串常用的功能:

...

strip() 去掉字符串左右的空格

列表

查看列表所有的功能dir(name_list)

name_list.index("65brother") 可以找出对应的索引值,但是这种,只能找到一条记录,那么如果里面有几条类似的记录,则不对,需要

name_list.count("65brother")

name_list.insert(2,"66brother")在2的位置插入

name_list.pop() 删除某位最后一个

name_list.remove("65brother")删除指定的某个元素

for i in range(name_list.count('65brother')):name_list.remove("65brother")

切片 name_list[0:2] 切片是顾首不顾尾

name = "alex"

name_list.extend(name) 则会将alex 拆分放到列表中

列表详细的用法

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000<br>list
list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

比如,列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = [&#39;Michael&#39;, &#39;Bob&#39;, &#39;Tracy&#39;]
>>> classmates
[&#39;Michael&#39;, &#39;Bob&#39;, &#39;Tracy&#39;]
变量classmates就是一个list。用len()函数可以获得list元素的个数:

>>> len(classmates)
3
用索引来访问list中每一个位置的元素,记得索引是从0开始的:

>>> classmates[0]
&#39;Michael&#39;
>>> classmates[1]
&#39;Bob&#39;
>>> classmates[2]
&#39;Tracy&#39;
>>> classmates[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1。

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

>>> classmates[-1]
&#39;Tracy&#39;
以此类推,可以获取倒数第2个、倒数第3个:

>>> classmates[-2]
&#39;Bob&#39;
>>> classmates[-3]
&#39;Michael&#39;
>>> classmates[-4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
当然,倒数第4个就越界了。

list是一个可变的有序表,所以,可以往list中追加元素到末尾:

>>> classmates.append(&#39;Adam&#39;)
>>> classmates
[&#39;Michael&#39;, &#39;Bob&#39;, &#39;Tracy&#39;, &#39;Adam&#39;]
也可以把元素插入到指定的位置,比如索引号为1的位置:

>>> classmates.insert(1, &#39;Jack&#39;)
>>> classmates
[&#39;Michael&#39;, &#39;Jack&#39;, &#39;Bob&#39;, &#39;Tracy&#39;, &#39;Adam&#39;]
要删除list末尾的元素,用pop()方法:

>>> classmates.pop()
&#39;Adam&#39;
>>> classmates
[&#39;Michael&#39;, &#39;Jack&#39;, &#39;Bob&#39;, &#39;Tracy&#39;]
要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> classmates.pop(1)
&#39;Jack&#39;
>>> classmates
[&#39;Michael&#39;, &#39;Bob&#39;, &#39;Tracy&#39;]
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

>>> classmates[1] = &#39;Sarah&#39;
>>> classmates
[&#39;Michael&#39;, &#39;Sarah&#39;, &#39;Tracy&#39;]
list里面的元素的数据类型也可以不同,比如:

>>> L = [&#39;Apple&#39;, 123, True]
list元素也可以是另一个list,比如:

>>> s = [&#39;python&#39;, &#39;java&#39;, [&#39;asp&#39;, &#39;php&#39;], &#39;scheme&#39;]
>>> len(s)
4
要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:

>>> p = [&#39;asp&#39;, &#39;php&#39;]
>>> s = [&#39;python&#39;, &#39;java&#39;, p, &#39;scheme&#39;]
要拿到&#39;php&#39;可以写p[1]或者s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。

如果一个list中一个元素也没有,就是一个空的list,它的长度为0:

>>> L = []
>>> len(L)
0
登录后复制

  

 

以上是Python自动化开发:循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作详细介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP和Python:代码示例和比较 PHP和Python:代码示例和比较 Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

CentOS上如何进行PyTorch模型训练 CentOS上如何进行PyTorch模型训练 Apr 14, 2025 pm 03:03 PM

在CentOS系统上高效训练PyTorch模型,需要分步骤进行,本文将提供详细指南。一、环境准备:Python及依赖项安装:CentOS系统通常预装Python,但版本可能较旧。建议使用yum或dnf安装Python3并升级pip:sudoyumupdatepython3(或sudodnfupdatepython3),pip3install--upgradepip。CUDA与cuDNN(GPU加速):如果使用NVIDIAGPU,需安装CUDATool

CentOS上PyTorch的GPU支持情况如何 CentOS上PyTorch的GPU支持情况如何 Apr 14, 2025 pm 06:48 PM

在CentOS系统上启用PyTorchGPU加速,需要安装CUDA、cuDNN以及PyTorch的GPU版本。以下步骤将引导您完成这一过程:CUDA和cuDNN安装确定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA显卡支持的CUDA版本。例如,您的MX450显卡可能支持CUDA11.1或更高版本。下载并安装CUDAToolkit:访问NVIDIACUDAToolkit官网,根据您显卡支持的最高CUDA版本下载并安装相应的版本。安装cuDNN库:前

docker原理详解 docker原理详解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

CentOS下PyTorch版本怎么选 CentOS下PyTorch版本怎么选 Apr 14, 2025 pm 02:51 PM

在CentOS下选择PyTorch版本时,需要考虑以下几个关键因素:1.CUDA版本兼容性GPU支持:如果你有NVIDIAGPU并且希望利用GPU加速,需要选择支持相应CUDA版本的PyTorch。可以通过运行nvidia-smi命令查看你的显卡支持的CUDA版本。CPU版本:如果没有GPU或不想使用GPU,可以选择CPU版本的PyTorch。2.Python版本PyTorch

CentOS上PyTorch的分布式训练如何操作 CentOS上PyTorch的分布式训练如何操作 Apr 14, 2025 pm 06:36 PM

在CentOS系统上进行PyTorch分布式训练,需要按照以下步骤操作:PyTorch安装:前提是CentOS系统已安装Python和pip。根据您的CUDA版本,从PyTorch官网获取合适的安装命令。对于仅需CPU的训练,可以使用以下命令:pipinstalltorchtorchvisiontorchaudio如需GPU支持,请确保已安装对应版本的CUDA和cuDNN,并使用相应的PyTorch版本进行安装。分布式环境配置:分布式训练通常需要多台机器或单机多GPU。所

centos如何安装nginx centos如何安装nginx Apr 14, 2025 pm 08:06 PM

CentOS 安装 Nginx 需要遵循以下步骤:安装依赖包,如开发工具、pcre-devel 和 openssl-devel。下载 Nginx 源码包,解压后编译安装,并指定安装路径为 /usr/local/nginx。创建 Nginx 用户和用户组,并设置权限。修改配置文件 nginx.conf,配置监听端口和域名/IP 地址。启动 Nginx 服务。需要注意常见的错误,如依赖问题、端口冲突和配置文件错误。性能优化需要根据具体情况调整,如开启缓存和调整 worker 进程数量。

See all articles