鱼C论坛

 找回密码
 立即注册
查看: 1914|回复: 3

[已解决]关于把字符串整形的问题,谢谢大佬们

[复制链接]
发表于 2020-3-13 14:05:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> str='123'
>>> print(str*3)
123123123
>>> int(str)
123
>>> print(str*3)
123123123
>>> str
'123'
>>> int(str)
123
>>> a='3'
>>> a
'3'
>>> print(a*6)
333333
>>> int(a)
3
>>> print(a*6)
333333
>>> a=3
>>> print(a*6)
18
>>>
我把字符型数据a=‘3’转化成数字3,但当我print(a*3)的时候出来的是333而不是9,请问我怎么改?谢谢
最佳答案
2020-3-13 18:38:27
使用
  1. a=int(a)
复制代码
而不是
  1. int(a)
复制代码


你没有赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 14:06:30 | 显示全部楼层
  1. a = int(a)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-13 14:07:28 | 显示全部楼层
  1. a = atoi(a)
  2. print(a * 3)
复制代码


或者自己封装函数:

  1. import math

  2. def atoi(x=0) -> int:
  3.     if isinstance(x, int):
  4.         return x

  5.     if isinstance(x, float):
  6.         return math.floor(x)

  7.     if isinstance(x, bytes):
  8.         x = x.decode()

  9.     if isinstance(x, str):
  10.         num = 0
  11.         bit = 1
  12.         symbol = -1 if x[0] == "-" else 1
  13.         x = x[1:] if x[0] in "+-" else x

  14.         set1 = set(x)
  15.         set2 = set("1234567890")

  16.         if not set1.issubset(set2):
  17.             raise ValueError

  18.         for i in x[::-1]:
  19.             if i == "0":
  20.                 pass

  21.             elif i == "1":
  22.                 num += 1 * bit * symbol

  23.             elif i == "2":
  24.                 num += 2 * bit * symbol
  25.                
  26.             elif i == "3":
  27.                 num += 3 * bit * symbol
  28.                
  29.             elif i == "4":
  30.                 num += 4 * bit * symbol
  31.                
  32.             elif i == "5":
  33.                 num += 5 * bit * symbol
  34.                
  35.             elif i == "6":
  36.                 num += 6 * bit * symbol
  37.                
  38.             elif i == "7":
  39.                 num += 7 * bit * symbol
  40.                
  41.             elif i == "8":
  42.                 num += 8 * bit * symbol
  43.                
  44.             elif i == "9":
  45.                 num += 9 * bit * symbol

  46.             bit *= 10

  47.         return num

  48.     raise ValueError

  49. a = atoi(a)
  50. print(a * 3)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 18:38:27 | 显示全部楼层    本楼为最佳答案   
使用
  1. a=int(a)
复制代码
而不是
  1. int(a)
复制代码


你没有赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 21:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表