"""
# _*_coding:utf-8 _*_
Name:列表生成式_01.py
Date:4/3/19
Author:LiMin-wsp
Connect:314690259@qq.com
Desc:
""""""
生成一个列表,列表元素分别为[1**2,2**2,3**2...n**2]
""""""
普通方式:
li = []
for i in range(1,9):
li.append(i ** 2)
print(li)
"""##列表生成式print([i**2for i inrange(1,9)])
运行结果:
[1,4,9,16,25,36,49,64]
例2:找出1-10之间的所有偶数,并返回一个列表(包含以这个偶数为半径的圆的面积)
"""
# _*_coding:utf-8 _*_
Name:列表生成式_02.py
Date:4/3/19
Author:LiMin-wsp
Connect:314690259@qq.com
Desc:
""""""
找出1-10之间的所有偶数,并返回一个列表(包含以这个偶数为半径的圆的面积)
""""""
普通方法:
import math
a = math.pi
li = []
for i in range(2,11,2):
li.append(i ** 2 * a)
print(li)
"""import math
a = math.pi
print([i **2* a for i inrange(2,11,2)])
运行结果:
[12.566370614359172,50.26548245743669,113.09733552923255,201.06192982974676,314.1592653589793]
例3:找出1~100之间所有的质数
"""
# _*_coding:utf-8 _*_
Name:列表生成式_03.py
Date:4/3/19
Author:LiMin-wsp
Connect:314690259@qq.com
Desc:
""""""
找出1~num之间的所有质数
"""defzhishu(num):for i inrange(2,num):if num % i ==0:returnFalseelse:returnTrue
num =int(input('输入: '))print([i for i inrange(2,num+1)if zhishu(i)])
运行结果:
输入:8[2,3,5,7]
例4:找文件
"""
# _*_coding:utf-8 _*_
Name:列表生成式_04.py
Date:4/3/19
Author:LiMin-wsp
Connect:314690259@qq.com
Desc:
""""""
找出/var/log/下以.log结尾的文件
""""""
普通方法:
import os
li = []
filename = []
s = os.listdir('/var/log')
li.append(s)
for i in s:
if i.endswith('.log'):
filename.append(i)
print(filename)
"""##列表生成式import os
print([filename for filename in os.listdir('/var/log')if filename.endswith('.log')])
运行结果:
['Xorg.1.log','Xorg.2.log','yum.log','Xorg.0.log','boot.log','wpa_supplicant.log']
例5:腾讯面试题
"""
# _*_coding:utf-8 _*_
Name:列表生成式_05.py
Date:4/3/19
Author:LiMin-wsp
Connect:314690259@qq.com
Desc:
""""""
(2018-腾讯-在线编程题)
- 题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))# [2,3,5,7]
- 输入描述:输入包括一个整数n,(3 ≤ n < 1000)
- 输出描述:输出对数
- 示例1 :
输入:10
输出:2
"""
num =int(input('输入: '))defzhishu(num):for i inrange(2,num):if num % i ==0:returnFalseelse:returnTrue
li =[i for i inrange(2,num)if zhishu(i)]
count =0for item in li:if(num - item)in li and(item <= num - item):
count +=1print('输出: %d'%count)
运行结果:
输入:10
输出:2