python学习之旅---编码技巧

0、命名方式

定义函数的命名:

# 1、			--- 推荐使用这种
def getNovelListUrl():
2def getnovelnisturl():
# 3、
def get_Novel_List_Url():
# 4、
def get_novel_nist_url():

1、变量的交换(Swapping Variables)

a = 1
b = 2
# 传统的变量交换代码:
temp = a
a = b
b = temp
# 编程技巧:
a,b = b,a

变量的交换测试图

2、字符串格式化(String Formatting)

name = "Liming"
# 通常情况下,我们利用加号来进行字符串的连接:
print("Hi, I'm " + name)

字符串连接---常规方法

name = "Liming"
country = "China"
age = 23
# 但是如果一句话比较长,则显得非常杂乱并且不易阅读
print("Hi, I'm " + name + ". I'm from " + country + ". And I'm " + str(age) + ".")

# 改进方式1:
print("Hi, I'm %s. I'm from %s. And I'm %d." %(name,country,age))

# 改进方法2:
print("Hi, I'm {}. I'm from {}. And I'm {}.".format(name,country,age))

# 推荐写法(python3.6以上版本):
print(f"Hi, I'm {name}. I'm from {country}. And I'm {age}.")

字符串连接---改进方法

3、Yield语法(Yield Statement)

# 原定义方式:
def fibonacci(n):
    a = 0
    b = 1
    nums = []
    for _ in range(n):
        nums.append(a)
        a,b = b,a + b
    return nums

一般写法

# Yield定义方式:
# 使用yield的好处:我们并不需要等列表生成结束之后再一个一个的输出
def fibonacci(n):
    a = 0
    b = 1
    for _ in range(n):
        yield a			# 这里的yield表示:每当我们计算出一个元素,就立马将这个元素给送出去
        a,b = b,a + b

for i in fibonacci(10):
    print(i)

yield用法

4、列表解析式(List Comprehension)

fruit = ["apple","pear","pineapple","orange","banana"]
# 操作:将列表的每一项的改成大写

# 常规操作:
for i in range(len(fruit)):
    fruit[i] = fruit[i].upper() 

# 改进方法:
# fruit = [x.upper() for x in fruit]

# 查看更改结果
print(fruit)

在这里插入图片描述

fruit = ["apple","pear","pineapple","orange","banana"]
# 操作:筛选或者过滤列表中的元素,比如:挑选出列表中以p开头的水果

filtered_fruit = []
for f in fruit:
    if f.startswith("p"):
        filtered_fruit.append(f)

# 改进方法:
# filtered_fruit = [x for x in fruit if x.startswith("p")]

# 查看筛选结果
print(filtered_fruit)

在这里插入图片描述

5、Enumerate函数(Enumerate Function)

fruit = ["apple","pear","pineapple","orange","banana"]
# 操作:按顺序输出某一个列表中的所有元素

# 常规操作:
for x in fruit:
    print(x)

# 同时得到列表元素的索引值和内容:
for i,x in enumerate(fruit):
    print(i,x)

在这里插入图片描述

6、反向遍历(Looping Backwards)

fruit = ["apple","pear","pineapple","orange","banana"]

# 反向遍历:按反序输出某一个列表中的所有元素
for i,x in enumerate(reversed(fruit)):
    print(i,x)
    
# 按顺序遍历(Looping in Sorted Order)
# 按照列表字母从a到z的排序方式
for i,x in enumerate(sorted(fruit)):
    print(i,x)

在这里插入图片描述

7、字典的合并操作(Dictionary Merging)

a = {"ross": "123456", "xiaoming": "abc123"}
b = {"liler": "111111", "zhangsan": "12345678"}
# 操作:将两个字典合并为一个字典
c = {}
for k in a:
    c[k] = a[k]
for k in b:
    c[k] = b[k]
# 改进方法:
# ** 在python中叫做解包unpacking
d = {**a, **b}
# 验证结果:
print(c)
print(d)

在这里插入图片描述

8、三元运算符(Ternary Operator)

# 根据数值大小的不同来进行选择
score = 50
if score > 60:
    s = "pass"
else:
    s = "fail"

# 改进方法:
# s = "pass" if score > 60 else "fail"

# 验证结果
print(s)

在这里插入图片描述

9、序列解包(Sequence Unpacking)

name = "San Zhang"
# 操作:想提取出姓和名
str_list = name.split()      # split() 把字符串按空格分割成多个字符串
first_name = str_list[0]
last_name = str_list[1]
# 改进方法:
# first_name, last_name = name.split()
# 验证结果
print(first_name,"-------",last_name)

在这里插入图片描述

10、With语句(With Statement)

# 常规操作:
f = open("somefile.txt","r")
s = f.read()
f.close()
# 改进方法:
# with语句可以自动的帮我们关闭打开的文件
with open("somefile.txt","r") as f:
    s = f.read()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ruoyo176

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值