python基础--list转换range()的打印结果

本文介绍Python中使用range函数生成序列,并通过list转换清晰展示元素。演示不同步长对序列的影响。

  for循环中常见的一个函数是range(),然而有时候直接打印range的时候,得到的结果却不是我们想要的,这个时候,可以用list列表来转换一下range的结果,让我们更清除的打印出range中的元素。

例如:

s=10
d=5
for i in range(s,s+d):
    s=s+1
    print(s)
    print(i)
    print(range(s, s + d, 1))
    print(list(range(s,s+d,1)))

运行结果:

11
10
range(11, 16)
[11, 12, 13, 14, 15]
12
11
range(12, 17)
[12, 13, 14, 15, 16]
13
12
range(13, 18)
[13, 14, 15, 16, 17]
14
13
range(14, 19)
[14, 15, 16, 17, 18]
15
14
range(15, 20)
[15, 16, 17, 18, 19]

这里可以明显的看出两个输出的不同结果,例如结果range(11, 16)和[11, 12, 13, 14, 15],在语句

print(range(s, s + d, 1))中,最后一个参数1是表示range中元素步进为1,如果写2的话,意思就是隔一个元素取一个,于是,修改代码:
s=10
d=5
for i in range(s,s+d):
    s=s+1
    print(s)
    print(i)
    print(range(s, s + d, 1))
    print(list(range(s,s+d,1)))
    print(list(range(s,s+d,2)))

运行结果:

11
10
range(11, 16)
[11, 12, 13, 14, 15]
[11, 13, 15]
12
11
range(12, 17)
[12, 13, 14, 15, 16]
[12, 14, 16]
13
12
range(13, 18)
[13, 14, 15, 16, 17]
[13, 15, 17]
14
13
range(14, 19)
[14, 15, 16, 17, 18]
[14, 16, 18]
15
14
range(15, 20)
[15, 16, 17, 18, 19]
[15, 17, 19]

 

 

转载于:https://www.cnblogs.com/utsuro/p/8658656.html

### Python 列表练习题 以下是关于 Python 列表的一些经典练习题及其解答: #### 创建列表并操作 1. **创建一个名为 `names` 的列表,添加指定成员,并打印其长度以及内容。** ```python names = ["陈贤贤", "大财神", "飞鱼", "WuYing", "阿阳", "Black"] print(f"列表的内容为: {names}") print(f"列表的长度为: {len(names)}") # 输出列表长度 ``` 2. **向已有的列表中追加新成员,并重新打印整个列表。** ```python names.append("我在渡劫") print(f"更新后的列表为: {names}") # 添加新的元素后输出 ``` --- #### 使用循环生成特定条件下的列表 3. **不使用 `if` 语句,通过循环或列表解析生成前 20 个偶数的列表。** - 方法一:使用循环 ```python list1 = [] for i in range(0, 40, 2): list1.append(i) print(f"方法一的结果为: {list1}") ``` - 方法二:使用列表解析 ```python list1 = [i for i in range(0, 40, 2)] print(f"方法二的结果为: {list1}") ``` --- #### 随机生成列表 4. **将 0 至 10 的随机整数存入列表中,并打印最终结果。** ```python import random ls = [] # 初始化空列表 for _ in range(10): # 循环十次 num = random.randint(0, 10) # 获取随机数 ls.append(num) # 将随机数加入到列表中 print(f"随机生成的列表为: {ls}") ``` --- #### 复杂逻辑处理 5. **输入一个正整数 `n`,按照给定规则将其转换成一系列数值,并存储在一个列表中。** - 如果 `n == 1`,返回 `[1]`; - 如果 `n` 是偶数,则返回 `n // 2`; - 如果 `n` 是奇数,则返回 `3 * n + 1`。 实现如下: ```python def generate_sequence(n): sequence = [n] while n != 1: if n % 2 == 0: n //= 2 else: n = 3 * n + 1 sequence.append(n) return sequence result = generate_sequence(int(input("请输入一个正整数: "))) print(f"生成的序列为: {result}, 序列长度为: {len(result)}") ``` --- #### 去重与统计 6. **去除列表中的重复项(提供两种实现方式)。** - 方法一:利用集合去重后再转回列表 ```python original_list = [1, 2, 3, 2, 4, 3, 5] unique_list = list(set(original_list)) print(f"方法一的结果为: {unique_list}") ``` - 方法二:手动遍历过滤 ```python original_list = [1, 2, 3, 2, 4, 3, 5] unique_list = [] for item in original_list: if item not in unique_list: unique_list.append(item) print(f"方法二的结果为: {unique_list}") ``` --- #### 数学应用 7. **找到 50 至 150 范围内的所有质数,并存储在列表中。** ```python def is_prime(num): if num < 2: return False for i in range(2, int(num**0.5)+1): if num % i == 0: return False return True primes = [num for num in range(50, 151) if is_prime(num)] print(f"范围内的质数为: {primes}") ``` 8. **计算列表的最大值、最小值、平均值和总和(不允许使用内置函数)。** ```python numbers = [10, 8, 5, 3, 27, 99] max_value = min_value = numbers[0] total_sum = 0 for num in numbers: if num > max_value: max_value = num if num < min_value: min_value = num total_sum += num average = total_sum / len(numbers) print(f"最大值为: {max_value}[^5]") print(f"最小值为: {min_value}") print(f"总和为: {total_sum}") print(f"平均值为: {average:.2f}") ``` --- #### 特殊场景模拟 9. **猜拳游戏——石头、剪刀、布。** ```python import random choices = ['石头', '剪刀', '布'] user_choice = input("请选择 (石头/剪刀/布): ") computer_choice = random.choice(choices) print(f"电脑选择了: {computer_choice}") if user_choice == computer_choice: print("平局!") elif (user_choice == '石头' and computer_choice == '剪刀') or \ (user_choice == '剪刀' and computer_choice == '布') or \ (user_choice == '布' and computer_choice == '石头'): print("你赢了!") else: print("你输了!") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值