打电话len([1,2,3])或[1,2,3].__len__()?之间有什么区别吗?
如果没有明显的差异,在幕后做了哪些不同的事情?
例如,
n = 3432, result 4
n = 45, result 2
n = 33215, result 5
n = -357, result 3
Run Code Online (Sandbox Code Playgroud)
我想我可以把它变成一个字符串然后得到字符串的长度,但这看起来很复杂和黑客.
我有以下脚本将CSV文件转换为XLSX文件,但我的列大小非常窄.每次我用鼠标拖动它们来读取数据.有人知道如何设置列宽openpyxl吗?
这是我正在使用的代码.
#!/usr/bin/python2.6
import csv
from openpyxl import Workbook
from openpyxl.cell import get_column_letter
f = open('users_info_cvs.txt', "rU")
csv.register_dialect('colons', delimiter=':')
reader = csv.reader(f, dialect='colons')
wb = Workbook()
dest_filename = r"account_info.xlsx"
ws = wb.worksheets[0]
ws.title = "Users Account Information"
for row_index, row in enumerate(reader):
for column_index, cell in enumerate(row):
column_letter = get_column_letter((column_index + 1))
ws.cell('%s%s'%(column_letter, (row_index + 1))).value = cell
wb.save(filename = dest_filename)
Run Code Online (Sandbox Code Playgroud) 我经常从我的 Python 代码中得到未捕获的异常(错误),这些异常被描述为TypeErrors. 经过大量的实验和研究,我收集了以下示例(以及细微的变化):
TypeError: func() takes 0 positional arguments but 1 was given
TypeError: func() takes from 1 to 2 positional arguments but 3 were given
TypeError: func() got an unexpected keyword argument 'arg'
TypeError: func() missing 1 required positional argument: 'arg'
TypeError: func() missing 1 required keyword-only argument: 'arg'
TypeError: func() got multiple values for argument 'arg'
TypeError: MyClass() takes no arguments
TypeError: unsupported operand type(s) for +: 'int' and 'str'
TypeError: can only concatenate str …Run Code Online (Sandbox Code Playgroud) 我想要计算floor(log(n,b))哪里n和b都是整数.直接实现甚至稍微大的值此函数失败n和b
# direct implementation
def floor_log(n,b):
return math.floor(math.log(n,b))
Run Code Online (Sandbox Code Playgroud)
例如,floor_log(100**3, 100)求2值而不是正确的值3.
我能够提出一个反复划分的工作功能,直到什么都没有
# loop based implementation
def floor_log(n,b):
val = 0
n = n // b
while n > 0:
val += 1
n = n // b
return val
Run Code Online (Sandbox Code Playgroud)
是否有更快或更优雅的方式来获得此解决方案?也许使用内置功能?
我正在尝试计算输入的位数。但是,每当我输入10或11或任何两位数时,输出都是325. 为什么不起作用?
inputnumber = int(input())
countnumber = inputnumber
digitcount = 0
while countnumber > 0:
digitcount += 1
countnumber = countnumber/10
print(digitcount)
# result is 325 when input is 10 or 11
Run Code Online (Sandbox Code Playgroud) 我们怎样才能在Python语言中获得十六进制数的长度?我尝试使用此代码,但即使这显示一些错误.
i = 0
def hex_len(a):
if a > 0x0:
# i = 0
i = i + 1
a = a/16
return i
b = 0x346
print(hex_len(b))
Run Code Online (Sandbox Code Playgroud)
这里我只使用346作为十六进制数,但我的实际数字非常大,需要手动计算.
问题是:
<<背景故事:假设我们正在设计一个新的汉堡关节的销售点和订单跟踪系统.这是一个小型联合,它只出售4种组合选择:经典单人组合(汉堡配一个馅饼),经典双人奶酪组合(2个馅饼),经典三人配奶酪组合(3个馅饼),前卫四人组合Guacamole Combo(4个小馅饼).我们将这些组合分别编码为1,2,3和4.每餐的体型都很大,可以买到更大的薯条和饮料.对于组合1,2,3和4,大尺寸组合分别由5,6,7和8表示.>>
编写一个名为order_size的迭代函数,它接受一个顺序并返回顺序中的组合数.例如,order_size(237) - > 3.
我应该有
order_size(0) = 0
order_size(6) = 1
order_size(51) = 2
order_size(682) = 3
Run Code Online (Sandbox Code Playgroud)
我的代码是:
def order_size(order):
# Fill in your code here
if order > 0:
size = 0
while order > 0:
size += 1
order = order // 10
return size
else:
return 0
Run Code Online (Sandbox Code Playgroud)
但我没有得到// 10部分的订单.我猜这是错的,但我想不出任何东西可以替代它.
我正在尝试编写一个计算给定数字中位数的函数.这是我的功能:
def num_digits(n):
"""
>>> num_digits(12345)
5
>>> num_digits(0)
1
>>> num_digits(-12345)
5
"""
count = 0
while n > 0:
if n == 0:
count += 1
count += 1
n = n/10
return count
if __name__=="__main__":
import doctest
doctest.testmod(verbose=True)
Run Code Online (Sandbox Code Playgroud)
但是这个功能不起作用.while循环的条件应该是什么?