在Python中可以很方便的进行类型转换。在开发中将整个字符串列表转换成整数列表也十分常见,下面介绍处理该问题的几种方式。
Python eval()函数用来执行一个字符串表达式,并返回表达式的值。如果表达式是用int表示,则会将参数转换为整数。
>>> lis = ['1','-4','3','-6','7'] >>> res = [eval(i) for i in lis] >>> res [1, -4, 3, -6, 7] >>> lis ['1', '-4', '3', '-6', '7']
使用列表推导式实现的,这是开发人员一直在寻找的一种速记。它节省了编写解决方案的时间和复杂性。
>>> test_list = ['1','4','3','6','7'] >>> test_list = [ int(i) for i in test_list ] >>> test_list [1, 4, 3, 6, 7]
这是执行此特定任务的最优雅、pythonic 和推荐的方法。此功能专为此类任务而设计,应该用于执行它们。
>>> test_list = ['1','4','3','6','7'] >>> test_list = list(map(int,test_list)) >>> test_list [1, 4, 3, 6, 7]
在这里,我们首先将每个字符串先转换为浮点数,然后使用 round() 函数将其转换为整数,否则会报错。
>>> lis = ['1.1','4','3.5','6.7','7.2'] >>> res = [ round(float(i)) for i in lis ] >>> res [1, 4, 4, 7, 7]
round用于保留小数位数
q = float(input()) a = round(q,2) print(a)
q是输入的小数,2是保留的小数位数
# Python有内置函数isalpha、isdigit、isspace可以分别判断字符串是否只包含字母 、数字、空格
多行输入多个字符串,每行一个单词,最后一个输入为0时结束。
把这些单词拼接成以空格间隔开的句子使用join函数
list1=[] while(True): n=input('') if(n=='0'): break else: list1.append(n) print(' '.join(list1))
兔子的数量以这样的方式增长:每个月的兔子数量等于它前一个月的兔子数量加它前两个月的兔子数量,即f(n)=f(n-1)+f(n-2)。假设第1个月的兔子有2只,第2个月的兔子有3只,你能使用递归的方法求得第n个月的兔子有多少只吗?
''' 1_num = 2 2_num = 3 3_num = 2 + 3 = 5 4_num = 3 + 5 = 8 ''' def f(n): # 第一个月有2只兔子 if n == 1: return 2 # 第二个月有3只兔子 if n == 2: return 3 # f(n-1)前一个月的num,f(n-2)前两个月的num # 一直回溯到f(n-1) == 2 , f(n-2) == 1 return f(n - 1) + f(n - 2)