当前位置:首页 » 编程语言 » python3floattoint

python3floattoint

发布时间: 2022-07-08 16:38:22

python3.4学习笔记 3.x和2.x的区别,持续更新

python3.4学习笔记(四) 3.x和2.x的区别

在2.x中:print html,3.x中必须改成:print(html)

import urllib2
ImportError: No mole named 'urllib2'
在python3.x里面,用urllib.request代替urllib2

import thread
ImportError: No mole named 'thread'
在python3.x里面,用_thread(在前面加一个下划线)代替thread

在2.x中except Exception,e : 3.x中改为except (Exception):

=================================
print函数
虽然print语法是Python 3中一个很小的改动,且应该已经广为人知,但依然值得提一下:Python 2中的print语句被Python 3中的print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来。
在Python 2中使用额外的括号也是可以的。但反过来在Python 3中想以Python2的形式不带括号调用print函数时,会触发SyntaxError。
Python 2.7.6

print 'Python', python_version()
print 'Hello, World!'
print('Hello, World!')
print "text", ; print 'print more text on the same line'
输出:
Hello, World!
Hello, World!
text print more text on the same line
---------------------------

Python 3.4.1
print('Python', python_version())
print('Hello, World!')

print("some text,", end="")
print(' print more text on the same line')
输出:
Hello, World!
some text, print more text on the same line
print 'Hello, World!'
File "<ipython-input-3-139a7c5835bd>", line 1
print 'Hello, World!'
^
SyntaxError: invalid syntax

注意:在Python中,带不带括号输出”Hello World”都很正常。
但如果在圆括号中同时输出多个对象时,就会创建一个元组,这是因为在Python 2中,print是一个语句,而不是函数调用。

print 'Python', python_version()
print('a', 'b')
print 'a', 'b'
Python 2.7.7
('a', 'b')
a b

---------------------------------
整数除法
由于人们常常会忽视Python 3在整数除法上的改动(写错了也不会触发Syntax Error),所以在移植代码或在Python 2中执行Python 3的代码时,需要特别注意这个改动。

所以,我还是会在Python 3的脚本中尝试用float(3)/2或 3/2.0代替3/2,以此来避免代码在Python
2环境下可能导致的错误(或与之相反,在Python 2脚本中用from __future__ import division来使用Python
3的除法)。

Python 2.7.6
3 / 2 = 1
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0

Python 3.4.1
3 / 2 = 1.5
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0
---------------------------------
Unicode
Python 2有基于ASCII的str()类型,其可通过单独的unicode()函数转成unicode类型,但没有byte类型。
而在Python 3中,终于有了Unicode(utf-8)字符串,以及两个字节类:bytes和bytearrays。

Python 2.7.6
print type(unicode('this is like a python3 str type'))
<type 'unicode'>
print type(b'byte type does not exist')
<type 'str'>
print 'they are really' + b' the same'
they are really the same
print type(bytearray(b'bytearray oddly does exist though'))
<type 'bytearray'>

Python 3.4.1 has <class 'bytes'>
print('and Python', python_version(), end="")
print(' also has', type(bytearray(b'bytearrays')))
and Python 3.4.1 also has <class 'bytearray'>
1
'note that we cannot add a string' + b'bytes for data'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-d3e8942ccf81> in <mole>()
----> 1 'note that we cannot add a string' + b'bytes for data'

TypeError: Can't convert 'bytes' object to str implicitly

=================================

python 2.4 与 python 3.0 的比较
一、 print 从语句变为函数
原: print 1,2+3
改为: print ( 1,2+3 )

二、range 与 xrange
原 : range( 0, 4 ) 结果 是 列表 [0,1,2,3 ]
改为:list( range(0,4) )
原 : xrange( 0, 4 ) 适用于 for 循环的变量控制
改为:range(0,4)

三、字符串
原: 字符串以 8-bit 字符串存储
改为: 字符串以 16-bit Unicode 字符串存储

四、try except 语句的变化
在2.x中except Exception,e : 3.x中改为except (Exception):

五、打开文件
原: file( ..... )
或 open(.....)
改为:
只能用 open(.....)
六、从键盘录入一个字符串
原: raw_input( "提示信息" )
改为: input( "提示信息" )

七、bytes 数据类型
A bytes object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 <= x < 256.
bytes 可以看成是“字节数组”对象,每个元素是 8-bit 的字节,取值范围 0~255。
由于在 python 3.0中字符串以 unicode 编码存储,当写入二进制文件时,字符串无法直接写入(或读取),必须以某种方式的编码为字节序列后,方可写入。

(一)字符串编码(encode) 为 bytes
例: s = "张三abc12"
b = s.encode( 编码方式)
# b 就是 bytes 类型的数据
# 常用的编码方式为 : "uft-16" , "utf-8", "gbk", "gb2312", "ascii" , "latin1" 等
# 注 : 当字符串不能编码为指定的“编码方式”时,会引发异常
(二) bytes 解码(decode)为字符串
s = "张三abc12"
b = s.encode( "gbk") # 字符串 s 编码为 gbk 格式的字节序列
s1 = b.decode("gbk") # 将字节序列 b以gbk格式 解码为字符串
# 说明,当字节序列不能以指定的编码格式解码时会引发异常
(三)使用方法举例
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "张三李四abcd1234"
# -------------------------------
# 在 python2.4 中我们可以这样写:
# f.write( s )
# 但在 python 3.0中会引发异常
# -------------------------------
b = s.encode("gbk")
f.write( b )
f.close()
input("?")
读取该文件的例子:
#coding=gbk
f = open("c:\\1234.txt", "rb")
f.seek(0,2) #定位至文件尾
n = f.tell() #读取文件的字节数
f.seek(0,0) #重新定位至文件开始处
b = f.read( n )
# ------------------------------
# 在 python 2.4 中 b 是字符串类型
# 要 python 3.0 中 b 是 bytes 类型
# 因此需要按指定的编码方式确码
# ------------------------------
s = b.decode("gbk")
print ( s )
# ------------------------------
# 在 python 2.4 中 可以写作 print s 或 print ( s )
# 要 python 3.0 中 必须写作 print ( s )
# ------------------------------
f.close()
input("?")
运行后应显示:
张三李四abcd1234

(四) bytes序列,一但形成,其内容是不可变的,例:
s="ABCD"
b=s.encode("gbk")
print b[0] # 显示 65
b[0] = 66
# 执行该句,出现异常: 'bytes' object does not support item assignment

八、 chr( K ) 与 ord( c )
python 2.4.2以前
chr( K ) 将编码K 转为字符,K的范围是 0 ~ 255
ord( c ) 取单个字符的编码, 返回值的范围: 0 ~ 255
python 3.0
chr( K ) 将编码K 转为字符,K的范围是 0 ~ 65535
ord( c ) 取单个字符的编码, 返回值的范围: 0 ~ 65535

九、 除法运算符
python 2.4.2以前
10/3 结果为 3
python 3.0
10 / 3 结果为 3.3333333333333335
10 // 3 结果为 3
十、字节数组对象 --- 新增
(一) 初始化
a = bytearray( 10 )
# a 是一个由十个字节组成的数组,其每个元素是一个字节,类型借用 int
# 此时,每个元素初始值为 0
(二) 字节数组 是可变的
a = bytearray( 10 )
a[0] = 25
# 可以用赋值语句更改其元素,但所赋的值必须在 0 ~ 255 之间
(三) 字节数组的切片仍是字节数组
(四) 字符串转化为字节数组
#coding=gbk
s ="你好"
b = s.encode( "gbk") # 先将字符串按某种“GBK”编码方式转化为 bytes
c = bytearray( b ) #再将 bytes 转化为 字节数组
也可以写作
c = bytearray( "你好", "gbk")

(五) 字节数组转化为字符串
c = bytearray( 4 )
c[0] = 65 ; c[1]=66; c[2]= 67; c[3]= 68
s = c.decode( "gbk" )
print ( s )
# 应显示: ABCD

(六) 字节数组可用于写入文本文件
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "张三李四abcd1234"
# -------------------------------
# 在 python2.4 中我们可以这样写:
# f.write( s )
# 但在 python 3.0中会引发异常
# -------------------------------
b = s.encode("gbk")
f.write( b )
c=bytearray( "王五","gbk")
f.write( c )
f.close()
input("?")

⑵ Python如何转换百分数字符串为浮点数

int函数能够
(1)把符合数学格式的数字型字符串转换成整数
(2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入。

举例:

1 aa = int("124") #Correct
2 print "aa = ", aa #result=124
3 bb = int(123.45) #correct
4 print "bb = ", bb #result=123
5 cc = int("-123.45") #Error,Can't Convert to int
6 print "cc = ",cc
7 dd = int("34a") #Error,Can't Convert to int
8 print "dd = ",dd
9 ee = int("12.3") #Error,Can't Convert to int
10 print ee
11

二、float函数将整数和字符串转换成浮点数。

举例:

1 aa = float("124") #Correct
2 print "aa = ", aa #result = 124.0
3 bb = float("123.45") #Correct
4 print "bb = ", bb #result = 123.45
5 cc = float(-123.6) #Correct
6 print "cc = ",cc #result = -123.6
7 dd = float("-123.34") #Correct
8 print "dd = ",dd #result = -123.34
9 ee = float('123v') #Error,Can't Convert to float
10 print ee

三、str函数将数字转换成字符

举例:

1 aa = str(123.4) #Correct
2 print aa #result = '123.4'
3 bb = str(-124.a) #SyntaxError: invalid syntax
4 print bb
5 cc = str("-123.45") #correct
6 print cc #result = '-123.45'
7 dd = str('ddd') #correct
8 print dd #result = ddd
9 ee = str(-124.3) #correct
10 print ee #result = -124.3

⑶ python中如何把string 转换成int

用数字字符串初始化int类,就可以将整数字符串(str)转换成整数(int):

In [1]: int(‘1234’)

Out[1]: 1234

相反用整数初始化str类,就可以将整数(int)转换为对应的字符串(str):

In [2]: str(1234)

Out[2]: ‘1234’

如果字符串是浮点数,可以用字符串初始化float类,把浮点数字符串(str)转换成浮点数(float):

In [3]: float(‘12.34’)

Out[3]: 12.34

(3)python3floattoint扩展阅读:

Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNUGeneral Public License)许可。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

7月20日,IEEE发布2017年编程语言排行榜:Python高居首位 。

2018年3月,该语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

⑷ 怎么将python时间段(Timedelta)转化为int或float数值形式! 急。

1、打开visio studio 2015,在文件中打开新建项目,新建一个Python应用程序,并修改程序的名称为int2date。

⑸ python 怎么生出成一个表格,并发送邮件

# -*- coding: utf-8 -*-

#程序名称:自动化缺陷报告脚本
#程序描述:实现从本地路径读取excel文件内容,并绘制HTML表格,将内容写入邮件正文区发送
#编写时间:2014.11.29-2014.12.4
#作者:刘琳泽
#解释环境:Windows 7家庭高级版 Python 2.7.8IDLE

#引入excel文档相关库
import xlrd
import os,time

#引入邮件相关库
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import base64

#处理从excel中读取的float类型数据的类
#目前集成两种处理:(1)float到int型的转换(2)float到str型的转换,后续有需要可以增加方法以集成其他类型的转换
class judgeFloat:
def floatToInt(self,variable):
variable="%d"%variable
return variable
def floatToStr(self,variable):
variable=xlrd.xldate_as_tuple(variable,0)
variable=list(variable)
if variable[1]<10:
variable[1]='0'+str(variable[1])
variable=str(variable[0])+str(variable[1])+str(variable[2])
return variable

#确定文档是否修改的函数:获取文档的修改时间与本地时间对比,不一致要求用户确认是否继续执行,一致则直接执行
def openFile(filename,address):
filetime=time.strftime("%Y/%m/%d",time.localtime(os.stat(address+filename).st_mtime))
local=time.strftime("%Y/%m/%d",time.localtime())
if filetime!=local:
single=input("文档今天还没有修改过,请确认是否继续?确认请输入1后点击回车,否则输入2点击回车。")
if single==1:
pass
elif single==2:
exit()
else:
print '您的输入有误!脚本即将结束。'
time.sleep(5)
exit()
else:
pass

#写邮件的函数
def mailWrite(filename,address):
header='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>'
th='<body text="#000000">committed缺陷详情:<table border="1" cellspacing="0" cellpadding="3" bordercolor="#000000" width="1800" align="left" ><tr bgcolor="#F79646" align="left" ><th>标识</th><th>摘要</th><th>状态</th><th>优先级</th><th>严重性</th><th>标记</th><th>所有者</th><th>创建时间</th><th>修改时间</th></tr>'
#打开文件
filepath=address+filename
book=xlrd.open_workbook(filepath)
sheet=book.sheet_by_index(0)
#获取行列的数目,并以此为范围遍历获取单元数据
nrows = sheet.nrows-1
ncols = sheet.ncols
body=''
cellData=1
for i in range(1,nrows+1):
td=''
for j in range(ncols):

#读取单元格数据,赋给cellData变量供写入HTML表格中
cellData=sheet.cell_value(i,j)
#调用浮点型转换方法解决读取的日期内容为浮点型数据的问题

if isinstance(cellData,float):
if j==0 and i>0:
cellDataNew=judgeFloat()
cellData=cellDataNew.floatToInt(cellData)
else:
cellDataNew=judgeFloat()
cellData=cellDataNew.floatToStr(cellData)
else:
pass
tip='<td>'+cellData+'</td>'
#并入tr标签
td=td+tip
tr='<tr>'+td+'</tr>'
#为解决字符串拼接问题增设语句,tr从excel中读取出来是unicode编码,转换成UTF-8编码即可拼接
tr=tr.encode('utf-8')
#并入body标签
body=body+tr
tail='</table></body></html>'
#将内容拼接成完整的HTML文档
mail=header+th+body+tail
return mail
#发送邮件
def mailSend(mail):
#设置发件人
sender = '***'
#设置接收人
receiver = '***@***.com'
#设置邮件主题
subject = '测试邮件,请忽略!'
#设置发件服务器,即smtp服务器
smtpserver = 'smtp.***.net'
#设置登陆名称
username = '***@***.net'
#设置登陆密码
password = '******'
#实例化写邮件到正文区,邮件正文区需要以HTML文档形式写入
msg = MIMEText(mail,'html','utf-8')
#输入主题
msg['Subject'] = subject
#调用邮件发送方法,需配合导入邮件相关模块
smtp = smtplib.SMTP()
#设置连接发件服务器
smtp.connect('smtp.***.net')
#输入用户名,密码,登陆服务器
smtp.login(username, password)
#发送邮件
smtp.sendmail(sender, receiver, msg.as_string())
#退出登陆并关闭与发件服务器的连接
smtp.quit()
#入口函数,配置文件地址和文件名
def main():
filename='Sheet1.xlsx'
address='d:/defectManage/'
openFile(filename,address)
mail=mailWrite(filename,address)
mailSend(mail)

#调用执行main函数
if __name__=="__main__":
main()

⑹ Python基本语法都有哪些

标识符


第一个字符必须是英文字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。


保留字


保留字即关键字,不能用作任何标识符名称。keyword 模块可以输出当前版本的所有关键字:


import keyword


print(keyword.kwlist)


['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


注释


单行注释采用#,注释是给人看的,可以是任意内容,解释器会忽略掉注释。多行注释采用'''或"""。


# print("我是注释,不会执行")


print("正常执行代码")


'''


这是多行注释,用三个单引号


这是多行注释,用三个单引号


'''


print("Hello, World!")


"""


这是多行注释,用三个双引号


这是多行注释,用三个双引号


"""


print("Hello, World!")


行与缩进


Python 使用缩进来表示代码块而不是大括号 {}。缩进的空格数是可变的,但是同一个代码块的语句必须是相同的缩进空格数。空格数建议一般空四个。其次注意Tab和四格空格混用可能会报错,并且这个错误还不容易被察觉。


输入输出


一般情况下都是一条语法一行,如果写的语句很长,我们还可以使用反斜杠()来呈现多行语句。在 [], {}, 或 () 中的多行语句,则不需要反斜杠。


sentence1 = "I love " +


"python"


sentence2 = ["I", "love",


"python"]


关于Python基本语法的内容,青藤小编就和您分享到这里了。如果您对python编程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于python编程的技巧及素材等内容,可以点击本站的其他文章进行学习。

⑺ python2和python3的区别,转换及共存

python2和python3的区别

1.性能

Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。

Py3.1性能比Py2.5慢15%,还有很大的提升空间。

2.编码

Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
>>> 中国 = 'china'
>>>print(中国)
china

3. 语法

1)去除了<>,全部改用!=

在Python 2里,为了得到一个任意对象的字符串表示,有一种把对象包装在反引号里(比如`x`)的特殊语法。在Python 3里,这种能力仍然存在,但是你不能再使用反引号获得这种字符串表示了。你需要使用全局函数repr()。

Notes

Python 2

Python 3

`x` repr(x)

`'PapayaWhip' + `2`` repr('PapayaWhip'+repr(2))

Note:x可以是任何东西—一个类,函数,模块,基本数据类型,等等。repr()函数可以使用任何类型的参数。

2)去除``,全部改用repr()

3)关键词加入as 和with,还有True,False,None

4)整型除法返回浮点数,要得到整型结果,请使用//

由于人们常常会忽视Python 3在整数除法上的改动(写错了也不会触发Syntax Error),所以在移植代码或在Python 2中执行Python 3的代码时,需要特别注意这个改动。

所以,我还是会在Python 3的脚本中尝试用float(3)/2或 3/2.0代替3/2,以此来避免代码在Python 2环境下可能导致的错误(或与之相反,在Python 2脚本中用from __future__ import division来使用Python 3的除法)。

Python 2

print'3/2=',3/2print'3//2=',3//2print'3/2.0=',3/2.0print'3//2.0=',3//2.0
3/2=13//2=13/2.0=1.53//2.0=1.0

默认,如果两个操作数都是整数,Python 2 自动执行整型计算。

Python 3

print('3/2=',3/2)print('3//2=',3//2)print('3/2.0=',3/2.0)print('3//2.0=',3//2.0)
3/2=1.53//2=13/2.0=1.53//2.0=1.0

Note: 需要注意的是“双划线”(//)操作符将一直执行整除,而不管操作数的类型,这就是为什么 5.0//2.0 值为 2.0。Python 3 中,/ 操作符是做浮点除法,而 // 是做整除(即商没有余数,比如 10 // 3 其结果就为 3,余数会被截除掉,而 (-7) // 3 的结果却是 -3。这个算法与其它很多编程语言不一样,需要注意,它们的整除运算会向0的方向取值。而在 Python 2 中,/ 就是整除,即和 Python 3 中的 // 操作符一样。

5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

6)print

去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

在Python 2里,print是一个语句。无论你想输出什么,只要将它们放在print关键字后边就可以。

Python 3里,print()是一个函数。就像其他的函数一样,print()需要你将想要输出的东西作为参数传给它。

例如:
2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x, # 使用逗号结尾禁止换行
3.X: print(x, end=" ") # 使用空格代替换行

在Python 2里,如果你使用一个逗号(,)作为print语句的结尾,它将会用空格分隔输出的结果,然后在输出一个尾随的空格(trailing space),而不输出回车(carriage return)。在Python 3里,通过把end=' '作为一个关键字参数传给print()可以实现同样的效果。参数end的默认值为' ',所以通过重新指定end参数的值,可以取消在末尾输出回车符。
2.X: print # 输出新行
3.X: print() # 输出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)

在Python 2里,你可以通过使用>>pipe_name语法,把输出重定向到一个管道,比如sys.stderr。在Python 3里,你可以通过将管道作为关键字参数file的值传递给print()来完成同样的功能。参数file的默认值为std.stdout,所以重新指定它的值将会使print()输出到一个另外一个管道。
2.X: print (x, y) # 输出repr((x, y))
3.X: print((x, y)) # 不同于print(x, y)!

exec语句

exec()函数使用一个包含任意Python代码的字符串作为参数,然后就像执行语句或者表达式一样执行它。exec()跟eval()是相似的,但是exec()更加强大并更具有技巧性。eval()函数只能执行单独一条表达式,但是exec()能够执行多条语句,导入(import),函数声明—实际上整个Python程序的字符串表示也可以。

Notes

Python 2

Python 3

execcodeString exec(codeString)

execcodeStringina_global_namespace exec(codeString,a_global_namespace)

execcodeStringina_global_namespace,a_local_namespace exec(codeString,a_global_namespace,a_local_namespace)

  • 在最简单的形式下,因为exec()现在是一个函数,而不是语句,2to3会把这个字符串形式的代码用括号围起来。

  • Python 2里的exec语句可以指定名字空间,代码将在这个由全局对象组成的私有空间里执行。Python 3也有这样的功能;你只需要把这个名字空间作为第二个参数传递给exec()函数。

  • 更加神奇的是,Python 2里的exec语句还可以指定一个本地名字空间(比如一个函数里声明的变量)。在Python 3里,exec()函数也有这样的功能。

  • execfile语句

    就像以前的exec语句,Python 2里的execfile语句也可以像执行Python代码那样使用字符串。不同的是exec使用字符串,而execfile则使用文件。在Python 3里,execfile语句已经被去掉了。如果你真的想要执行一个文件里的Python代码(但是你不想导入它),你可以通过打开这个文件,读取它的内容,然后调用compile()全局函数强制Python解释器编译代码,然后调用新的exec()函数。

    Notes

    Python 2

    Python 3

  • execfile('a_filename') exec(compile(open('a_filename').read(),'a_filename','exec'))
  • 7)输入函数改变了,删除了raw_input,用input代替: Python 2有两个全局函数,用来在命令行请求用户输入。第一个叫做input(),它等待用户输入一个Python表达式(然后返回结果)。第二个叫做raw_input(),用户输入什么它就返回什么。这让初学者非常困惑,并且这被广泛地看作是Python语言的一个“肉赘”(wart)。Python 3通过重命名raw_input()为input(),从而切掉了这个肉赘,所以现在的input()就像每个人最初期待的那样工作。
    2.X:guess = int(raw_input('Enter an integer : ')) # 读取键盘输入的方法
    3.X:guess = int(input('Enter an integer : '))

    Note:如果你真的想要请求用户输入一个Python表达式,计算结果,可以通过调用input()函数然后把返回值传递给eval()。

    I/O方法xreadlines()

    在Python 2里,文件对象有一个xreadlines()方法,它返回一个迭代器,一次读取文件的一行。这在for循环中尤其有用。事实上,后来的Python 2版本给文件对象本身添加了这样的功能。

    在Python 3里,xreadlines()方法不再可用了。2to3可以解决简单的情况,但是一些边缘案例则需要人工介入。

    Notes

    Python 2

    Python 3

  • for line in a_file.xreadlines(): for line in a_file:
  • for line in a_file.xreadlines(5): no change (broken)
  • 如果你以前调用没有参数的xreadlines(),2to3会把它转换成文件对象本身。在Python 3里,这种转换后的代码可以完成前同样的工作:一次读取文件的一行,然后执行for循环的循环体。

  • 如果你以前使用一个参数(每次读取的行数)调用xreadlines(),2to3不能为你完成从Python 2到Python 3的转换,你的代码会以这样的方式失败:AttributeError: '_io.TextIOWrapper' object has no attribute 'xreadlines'。你可以手工的把xreadlines()改成readlines()以使代码能在Python 3下工作。(readline()方法在Python 3里返回迭代器,所以它跟Python 2里的xreadlines()效率是不相上下的。)


  • 8)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值

    9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了

    10)新式的8进制字变量,相应地修改了oct()函数。
    2.X的方式如下:
    >>> 0666
    438
    >>> oct(438)
    '0666'


    3.X这样:
    >>> 0666
    SyntaxError: invalid token (<pyshell#63>, line 1)
    >>> 0o666
    438
    >>> oct(438)
    '0o666'

    11)增加了 2进制字面量和bin()函数
    >>> bin(438)
    '0b110110110'
    >>> _438 = '0b110110110'
    >>> _438
    '0b110110110'

    12)扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list对象和seq是可迭代的。

    13)新的super(),可以不再给super()传参数,
    >>> class C(object):
    def __init__(self, a):
    print('C', a)
    >>> class D(C):
    def __init(self, a):
    super().__init__(a) # 无参数调用super()
    >>> D(8)
    C 8
    <__main__.D object at 0x00D7ED90>

    14)支持class decorator。用法与函数decorator一样:
    >>> def foo(cls_a):
    def print_func(self):
    print('Hello, world!')
    cls_a.print = print_func
    return cls_a
    >>> @foo
    class C(object):
    pass
    >>> C().print()
    Hello, world!

    class decorator可以用来玩玩狸猫换太子的大把戏。更多请参阅PEP 3129

    4. 字符串和字节串

    Python 2有两种字符串类型:Unicode字符串和非Unicode字符串。Python 2有基于ASCII的str()类型,其可通过单独的unicode()函数转成unicode类型,但没有byte类型。

    而在Python 3中,终于有了Unicode(utf-8)字符串,以及两个字节类:bytes和bytearrays。Python 3只有一种类型:Unicode字符串(Unicode strings)。只有str一种类型,但它跟2.x版本的unicode几乎一样。

    Notes

    Python 2

    Python 3

  • u'PapayaWhip' 'PapayaWhip'
  • ur'PapayaWhipfoo' r'PapayaWhipfoo'
  • Python 2里的Unicode字符串在Python 3里即普通字符串,因为在Python 3里字符串总是Unicode形式的。

  • Unicode原始字符串(raw string)(使用这种字符串,Python不会自动转义反斜线"")也被替换为普通的字符串,因为在Python 3里,所有原始字符串都是以Unicode编码的。

  • 全局函数unicode()

    Python 2有两个全局函数可以把对象强制转换成字符串:unicode()把对象转换成Unicode字符串,还有str()把对象转换为非Unicode字符串。

    Python 3只有一种字符串类型,Unicode字符串,所以str()函数即可完成所有的功能。(unicode()函数在Python 3里不再存在了。)

    Notes

    Python 2

    Python 3

  • unicode(anything) str(anything)

  • 5.数据类型

    1)Python 2有为非浮点数准备的int和long类型。int类型的最大值不能超过sys.maxint,而且这个最大值是平台相关的。可以通过在数字的末尾附上一个L来定义长整型,显然,它比int类型表示的数字范围更大。

    在Python 3里,只有一种整数类型int,大多数情况下,它很像Python 2里的长整型。

    Note:检查一个变量是否是整型,获得它的数据类型,并与一个int类型(不是long)的作比较。你也可以使用isinstance()函数来检查数据类型;再强调一次,使用int,而不是long,来检查整数类型。

    sys.maxint

    由于长整型和整型被整合在一起了,sys.maxint常量不再精确。但是因为这个值对于检测特定平台的能力还是有用处的,所以它被Python 3保留,并且重命名为sys.maxsize。

    Notes

    Python 2

    Python 3

  • from sys import maxint from sys import maxsize

⑻ python float函数字符串转换浮点数 保留位数

int函数能够
(1)把符合数学格式的数字型字符串转换成整数
(2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入。

举例:

1 aa = int("124") #Correct
2 print "aa = ", aa #result=124
3 bb = int(123.45) #correct
4 print "bb = ", bb #result=123
5 cc = int("-123.45") #Error,Can't Convert to int
6 print "cc = ",cc
7 dd = int("34a") #Error,Can't Convert to int
8 print "dd = ",dd
9 ee = int("12.3") #Error,Can't Convert to int
10 print ee
11

二、float函数将整数和字符串转换成浮点数。

举例:

1 aa = float("124") #Correct
2 print "aa = ", aa #result = 124.0
3 bb = float("123.45") #Correct
4 print "bb = ", bb #result = 123.45
5 cc = float(-123.6) #Correct
6 print "cc = ",cc #result = -123.6
7 dd = float("-123.34") #Correct
8 print "dd = ",dd #result = -123.34
9 ee = float('123v') #Error,Can't Convert to float
10 print ee

三、str函数将数字转换成字符

举例:

1 aa = str(123.4) #Correct
2 print aa #result = '123.4'
3 bb = str(-124.a) #SyntaxError: invalid syntax
4 print bb
5 cc = str("-123.45") #correct
6 print cc #result = '-123.45'
7 dd = str('ddd') #correct
8 print dd #result = ddd
9 ee = str(-124.3) #correct
10 print ee #result = -124.3

⑼ python写一个要求用户输入数字,如果不是数字就一直循环要求输入,直到输入数字为止的代码

主要出在eval上。
python3.0

第一个方案:
while True:
ten=input("x:")
try:
x=eval(ten)
if type(x)==int:break
except:pass
然后输入asf,没有提示。输入344就退出了
x:asf
x:344

第二个方案
while True:
ten=None
try:
ten=int(input("x:"))
except:pass
if type(ten)==int:break
这个在python3.0上调试通过

第三个方案:python2.x的方案
while True:
ten=raw_input("Enter a number:")
if ten.isdigit():break
ten=int(ten) #或者是ten=eval(ten)

都调试过。可以用

热点内容
国服没有脚本吗 发布:2025-03-13 02:52:57 浏览:702
机器人解压 发布:2025-03-13 02:52:18 浏览:955
怎么在服务器上部署网站 发布:2025-03-13 02:52:15 浏览:207
android弹出键盘布局 发布:2025-03-13 02:46:22 浏览:379
单耳安卓蓝牙耳机怎么使用教程 发布:2025-03-13 02:36:22 浏览:518
配置apache以域名访问 发布:2025-03-13 02:22:34 浏览:559
android视频录制播放 发布:2025-03-13 02:10:32 浏览:601
php从数据库中读取数据 发布:2025-03-13 02:10:27 浏览:942
热血传奇任务脚本 发布:2025-03-13 02:06:16 浏览:303
t4服务器什么牌子好 发布:2025-03-13 02:02:39 浏览:633