Python代码非常简洁、高效,使用C语言100行代码实现的功能,Java通常需要10行代码,而python只需一行代码。试一试,只用一行代码,实现1到100数字的列输出。实现效果如下图所示。
示例代码如下:
# 第一种写法
print("\n".join(map(str, range(1, 101))))
# 第二种写法
print("\n".join([str(i) for i in range(1, 101)]))
# 记住一定要将整数转为字符串之后才能使用join 否则报错
只用1行代码,输出所有大写字母。运行效果如下图所示。
示例代码如下:
# 第一种写法
print(" ".join(chr(i) for i in range(65, 91)))
# 第二种写法
print(" ".join(map(chr, range(65, 91))))
只用1行代码,生成20以内的奇数。运行效果如下图所示。
示例代码如下:
# 第一种写法:
print("\n".join(map(str, range(1, 20, 2))))
# 第二种写法:
print("\n".join([str(i * 2 + 1) for i in range(10)]))
只用1行代码,计算1-100(包括1和100)
之间所有数的和。运行效果如下图所示。
# 第一种写法:
print(f"1~100所有数的和: {sum(range(1, 101))}")
# 第二种写法:
print(f"1~100所有数的和: {(1 + 100) * 100 // 2}")
# 第三种写法:
print(f"1~100所有数的和: {__import__('functools').reduce(lambda x, y: x + y, range(101))}")
只用一行代码,计算输入的小数和大数(包含小数和大数之间)
所有数的和,运行效果如下图所示。
print(f"小数和大数之间所有数的和为: {sum(range(int(input('小数: ').strip()), int(input('大数: ').strip()) + 1))}")
只用一行代码列输出1~50的三位数字编号
,可以使用在zfill()方法
或format()函数
实现,如下图所示。
示例代码如下:
# zfill(): 方法返回指定长度的字符串,原字符串右对齐,字符串前面填充0.
# zfill()方法语法格式: str.zfill(width)
# width: 指定字符串的长度。原字符串右对齐,前面填充0.
print("\n".join([str(i).zfill(3) for i in range(1, 51)]))
# 使用format函数
# "0>3": 0填充值 >右对齐 3宽度
print("\n".join([format(i, "0>3") for i in range(1, 51)]))
# 第三种写法:
print("\n".join(["{0:{fill}{align}3}".format(i, fill="0", align=">") for i in range(1, 51)]))
# 简写
print("\n".join(["{:0>3}".format(i) for i in range(1, 51)]))
我国古时的乘法口诀,是自上而下,从九九八十一
开始,至一一得一
止,与使用的顺序相反,因此古人用乘法口诀开始的两个字九九
作为此口诀的名称,又称九九表、九九歌、九因歌、九九乘法表。使用一行代码,输出九九乘法表,运行效果如下图所示。
示例代码如下:
print('\n'.join([' '.join(["{:<2d}x {:<2d}= {:<2d} ".format(j, i, i * j) for j in range(1, i + 1)])
for i in range(1, 10)]))
大家小时候玩过迷宫吗?迷宫是一种非常益智的游戏。可以激发玩家的大脑潜力,还能够对孩子们有一定的启迪作用。请用一行代码输出阵列迷宫,程序运行效果如下图所示。
示例代码如下:
print(''.join(__import__('random').choice('\u2572\u2571\u2570\u2569') for i in range(50 * 30)))
说到程序员,大家想到的都是直男
或者直女
,然而程序员也有着自己的浪漫,本案例使用一行代码画出爱心,如图所示:
示例代码如下:
print('\n'.join([''.join([('AmoLove'[(x-y) % len('AmoLove')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(15, -15, -1)]))
原字典:
d = {'a': 12, 'b': 50, 'c': 1, 'd': 20}
新字典:
new_d = {'c': 1, 'a': 12, 'd': 20, 'b': 50}
示例代码如下:
print(dict(sorted({'a': 12, 'b': 50, "c": 1, "d": 20}.items(), key=lambda item: item[1])))
filter函数
使用lambda函数
,找出满足大于10的元素。给定列表:
a = [15, 2, 7, 20, 400, 10, 9, -15, 107]
示例代码如下:
print(list(filter(lambda x: x > 10, [15, 2, 7, 20, 400, 10, 9, -15, 107])))
给定列表:
num_list2 = [100, 101, 102, 103, 104, 105, 106, 107]
示例代码如下:
print(list(map(lambda x: x + 1 if x % 2 == 0 else x, [100, 101, 102, 103, 104, 105, 106, 107])))
url = "http://{}.58.com/zpjianshen/pn{}"
citys = ['北京', '金华', '上海', '深圳', '广州', '厦门', '武汉', '长沙', '石家庄', '南昌', '青岛', '杭州', '合肥', '南宁', '贵阳', '兰州', '郑州', '哈尔滨']
cityscode = ['bj', 'jh', 'sh', 'sz', 'gz', 'xm', 'wh', 'cs', 'sjz', 'nc', 'qd', 'hz', 'hf', 'nn', 'gy', 'lz', 'zz',
'hrb']
# 要求将上面的url补充完整 格式如下
[{'北京':['http://bj.58.com/zpjianshen/pn1',...'http://bj.58.com/zpjianshen/pn30']}, {'金华':['http://jh.58.com/zpjianshen/pn1',...,'http://bj.58.com/zpjianshen/pn30']}]
运行结果如图所示:
示例代码如下:
print([{['北京', '金华', '上海', '深圳', '广州', '厦门', '武汉', '长沙', '石家庄', '南昌', '青岛', '杭州', '合肥', '南宁', '贵阳',
'兰州', '郑州', '哈尔滨'][i]: ["http://{}.58.com/zpjianshen/pn{}".format(
['bj', 'jh', 'sh', 'sz', 'gz', 'xm', 'wh', 'cs', 'sjz', 'nc', 'qd', 'hz', 'hf', 'nn', 'gy', 'lz', 'zz',
'hrb'][i], j + 1) for j in range(30)]} for i in
range(len(['北京', '金华', '上海', '深圳', '广州', '厦门', '武汉', '长沙', '石家庄', '南昌', '青岛', '杭州', '合肥', '南宁', '贵阳',
'兰州', '郑州', '哈尔滨']))])
示例代码如下:
print("\n".join(["*" * 6 for i in range(int(input("行数:").strip()))]))
执行结果如图所示:
笔者暂时就写这么多,其实很多的代码都是可以用一行代码进行改写的。但是要注意,这种虽然看起来比较炫酷
,但是在实际的开发中,千万别这么写,可读性以及维护性太差
。如果你发现更多好玩的python代码,欢迎在留言区与大家分享出来。编写不易,请大家手留余香 给个赞或者是关注~,感谢。