标签分类
技术文章
当前位置:主页 > 计算机编程 > python > Python不使用int()函数把字符串转换为数字

Python不使用int()函数把字符串转换为数字实例讲解

  • 发布时间:
  • 作者:码农之家原创
  • 点击:215

Python不使用int()函数把字符串转换为数字

这篇文章主要知识点是关于Python,字符串,转换,数字,Python不使用int()函数把字符串转换为数字,python函数之int()用法详解 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python和HDF5大数据应用
  • 类型:Python数据分析大小:13.8 MB格式:PDF出版:人民邮电出版社作者:科莱特
立即下载

更多相关的学习资源可以参阅 程序设计电子书Python电子书、等栏目。

不使用int()函数的情况下把字符串转换为数字,如把字符串"12345"转换为数字12345。

方法一:利用str函数

既然不能用int函数,那我们就反其道而行,用str函数找出每一位字符表示的数字大写。

def atoi(s):
 s = s[::-1]
 num = 0
 for i, v in enumerate(s):
  for j in range(0, 10):
   if v == str(j):
   num += j * (10 ** i)
 return num

方法二:利用ord函数

利用ord求出每一位字符的ASCII码再减去字符0的ASCII码求出每位表示的数字大写。

def atoi(s):
 s = s[::-1]
 num = 0
 for i, v in enumerate(s):
  offset = ord(v) - ord('0')
  num += offset * (10 ** i)
 return num

方法三:利用eval函数

eval的功能是将字符串str当成有效的表达式来求值并返回计算结果。我们利用这特点可以利用每位字符构造成和1相乘的表达式,再用eval算出该表达式的返回值就表示数字大写。

def atoi(s):
 s = s[::-1]
 num = 0
 for i, v in enumerate(s):
  t = '%s * 1' % v
  n = eval(t)
  num += n * (10 ** i)
 return num

以上这篇Python不使用int()函数把字符串转换为数字的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

python函数之int()用法详解

int(x, [base])

功能:

函数的作用是将一个数字或base类型的字符串转换成整数。

函数原型:

int(x=0)

int(x, base=10),base缺省值为10,也就是说不指定base的值时,函数将x按十进制处理。

适用Python版本:

Python2.x

Python3.x

注意:

1. x 可以是数字或字符串,但是base被赋值后 x 只能是字符串

2. x 作为字符串时必须是 base 类型,也就是说 x 变成数字时必须能用 base 进制表示

Python英文文档解释:

class int(x=0)

class int(x, base=10)

Return an integer object constructed from a number or string x, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in radix base. Optionally, the literal can be preceded by + or - (with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with a to z (or A to Z) having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O, or 0x/0X, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int('010', 0) is not legal, while int('010') is, as well as int('010', 8).

The integer type is described in Numeric Types — int, float, complex.

Changed in version 3.4: If base is not an instance of int and the base object has a base.__index__ method, that method is called to obtain an integer for the base. Previous versions used base.__int__ instead of base.__index__.

Changed in version 3.6: Grouping digits with underscores as in code literals is allowed.

代码实例:

1. x 是数字的情况:

  int(3.14)            # 3
  int(2e2)             # 200
  int(100, 2)          # 出错,base 被赋值后函数只接收字符串

2. x 是字符串的情况:

  int('23', 16)      # 35
  int('Pythontab', 8)      # 出错,Pythontab不是个8进制数

3. base 可取值范围是 2~36,囊括了所有的英文字母(不区分大小写),十六进制中F表示15,那么G将在二十进制中表示16,依此类推....Z在三十六进制中表示35

  int('FZ', 16)      # 出错,FZ不能用十六进制表示
  int('FZ', 36)      # 575

4. 字符串 0x 可以出现在十六进制中,视作十六进制的符号,同理 0b 可以出现在二进制中,除此之外视作数字 0 和字母 x

  int('0x10', 16)  # 16,0x是十六进制的符号
  int('0x10', 17)  # 出错,'0x10'中的 x 被视作英文字母 x
  int('0x10', 36)  # 42804,36进制包含字母 x

以上就是python函数之int()用法详解的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到解决axios.interceptors.respon、 vue项目中使用md5加密以及、 儿童python编程入门书籍推、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:多版本python python2和python3共存方法

下一篇:Django配置celery执行异步任务和定时任务详解

展开 +

收起 -

学习笔记
网友NO.563787

对Python中TKinter模块中的Label组件实例详解

Python2.7.4 OS—W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像。最终呈现出的Label是由背景和前景叠加构成的内容。 Label组件定义函数:Label(master=None, cnf={}, **kw) 其中,kw参数是用来自定义lable组件的键值对。 2. 背景自定义 背景的话,有三部分构成:内容区+填充区+边框 1内容区参数有:width,length用于指定区域大小,如果显示前景内容是文本,则以单个字符大小为单位;如果显示的是图像,则以像素为单位。默认值是根据具体显示的内容动态调整。类型是int。 background用于指定背景的颜色,默认值根据系统而定。 2填充区参数:指的是内容区和边框之间的间隔大小,单位是像素。参数有:padx , pady,类型是int。 3边框参数:样式relief(可选值为:flat(默认),sunken,raised,groove,ridge),borderwidth(边框的宽度,单位是像素,默认根据系统而定,一般是1或2像素) highlightbackground,highlightcolor,highlightthickness 三个边框参数仅在Label允许接收焦点的情况下(tackfocus=True),用于设置焦点获取前后高亮边框颜色以及高亮边框宽度。 举个栗子(@-@) 上图右侧为,背景图构成:内容区(黑色),填充区(绿色),边框(黄色) 定义的背景内容区是可容纳3X9的字符区,如上图中的右侧小窗口中的Label。增加了填充区和边框后的效果如上图中左侧的Lab……

网友NO.806420

tkinter是python自带的吗

Tkinter模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口。Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能使用import导入Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。 注意: Python3.x 版本使用的库名为tkinter,即首写字母 T 为小写。 import tkinter 如何创建一个GUI程序? 步骤: 1、导入 Tkinter 模块 2、创建控件 3、指定这个控件的 master, 即这个控件属于哪一个 4、告诉 GM(geometry manager) 有一个控件产生了。 实例1: #!/usr/bin/python# -*- coding: UTF-8 -*- import Tkintertop = Tkinter.Tk()# 进入消息循环top.mainloop() 以上代码执行结果如下图: 实例2: #!/usr/bin/python# -*- coding: UTF-8 -*- from Tkinter import * # 导入 Tkinter 库root = Tk() # 创建窗口对象的背景色 # 创建两个列表li = ['C','python','php','html','SQL','java']movie = ['CSS','jQuery','Bootstrap']listb = Listbox(root) # 创建两个列表组件listb2 = Listbox(root)for item in li: # 第一个小部件插入数据 listb.insert(0,item) for item in movie: # 第二个小部件……

网友NO.255181

python Tkinter的图片刷新实例

调用python自带的GUI制作库 一开始想用Tkinter制作GUI的,网上说是python自带的,结果输入: import tkinter 后,显示: _ImportError: No module named tkinter_ 以为是没有安装,还利用apt-get install 命令安装了一堆东西,安装完了发现还是没有用。(⊙﹏⊙)b 后来看到如果是用的python2.7的话,需要输入 import Tkinter 然后就可以用了。 显示连续刷新的图片 开始用的TK的Label功能来显示图片,需要等到调用mainloop()后才会显示图片,没找到可以刷新图像的方法;后来采用Canvas,才找到了可以不用等到mainloop()就可以显示图片的方法,代码如下: from Tkinter import *from PIL import Image, ImageTkimport timeimport osimport cv2num=0tk=Tk()canvas=Canvas(tk,width=500,height=500,bg = 'white')while num7: num +=1 filename = str(num) + '.jpg' if os.path.isfile(filename): img1 = cv2.imread(filename) im1 = Image.fromarray(cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)) img = ImageTk.PhotoImage(image = im1) #img = ImageTk.PhotoImage(file = filename) itext = canvas.create_image((250,150),image = img) canvas.pack() tk.update() tk.after(1000)tk.mainloop() 再后来发现用Label也可以实现图片的刷新,关键在于是否加了: tk.updata() 使用Label的程序如下,其中的.grid()用于设置显示的位置: #coding=utf-8import Tkinter as tkfrom PIL import Image, ImageTkimport cv2import osimport timedef btnHelloClicked(): labelHello.config(text = "Hello ……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明