Python编程快速上手 让繁琐工作自动化 第一部分

本文详细介绍了Python编程的基础知识,包括数据类型、控制流(如break和continue)、函数定义、列表操作(如切片、连接和索引)、字典处理、字符串操作(如转义字符和格式化)以及使用第三方pyperclip模块进行文本复制粘贴。
摘要由CSDN通过智能技术生成

   第一章  Python基础

**         指数         2**3=8

//        整除/商数取整         22//8=2

%        取模/取余数

数据类型:整型、浮点型、字符串类型

可以使用字符串+字符串实现字符串的连接,还可以通过字符创*整型来实现字符串的复制

变量命名:

只能是一个词,不带空格 

只能包含字母、数字和下划线

不能数字开头

第二章 控制流

break 跳出循环

continue 调回到循环开始处

range(5)   0 1 2 3 4

range(开始, 停止, 步长)    步长可以为负数

调用sys.exit() 可以提前终止或退出程序,该函数出于sys模块中

wins = 0
losses = 0
ties = 0
print('%s Wins, %s Losses, %s Ties' % (wins, losses, ties))

输出为:

0 Wins, 0 Losses, 0 Ties

第三章 函数

None 表示没有值

print("Hello", end='')
print("world")

将默认的end换行替换掉

print('cats', 'dogs', 'mice', sep=',')

将默认的空格分隔字符串替换为逗号分隔字符串

局部和全局作用域:

全局作用域中的代码不能使用任何局部变量

局部作用域中的代码可以访问全局变量

一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量

在不同的作用域中,你可以用相同的名字命名不同的变量。

global语句:

如果需要在一个函数内修改全局变量,就使用global语句。

如果在函数的顶部有global eggs这样的代码,它是在告诉python:“在这个函数中,eggs指的的全局变量”

Collatz序列:

def collatz(number_1):
    if number_1 % 2 == 0:
        return number_1//2
    elif number_1%2 == 1:
        return 3*number_1+1


try:
    number_2 = int(input("请输入一个数字\n"))
except ValueError:
    print("输入整数!")
else:
    while True:
        if collatz(number_2) == 1:
            print(collatz(number_2))
            break
        else:
            number_2 = collatz(number_2)
            print(number_2)
            continue

第四章 列表

列表名[索引]    获取列表元素

索引可以是整数也可以是负数

利用切片获得子列表:

span[1:4]是一个列表和切片,从索引1开始,到索引4结束(不包含索引4)

列表连接:spam = spam_1 + spam_2

in    noit in 来判断列表中是否存在某元素

列表还可以用于多重赋值

enumerate()函数与列表一起使用:

supply = ['pens', 'staplers', 'flamethrowers', 'binders']
for index, item in enumerate(supply):
    print(f"Index:{index} in supply is: {item}")

可以得到列表中的表项的索引和表项本身

random.choice()和列表一起使用

可以返回一个随机选择的表项

random.shuffle()和列表一起使用

可以对列表中的表项重新排序,该函数将就地修改列表,而不是返回新列表‘’

使用index()方法在列表中查找值

如果该值存在于列表中,就返回他的索引,如果不存在就报错

supply = ['pens', 'staplers', 'flamethrowers', 'binders']
print(supply.index('pens'))

sort()将列表中的值排序

不能对既有数字又有字符串值的列表排序

对字符串排序,使用ASCII字符顺序

如果需要按照普通的字典顺序来排序,就在调用sort()方法时,将关键字参数key设置为str.lower

使用reverse()方法反转列表中的值

列表是可变的数据类型,它的值可以添加、删除或改变,但是字符串是不可变数据类型,它不能被改变。元组也是不可变数据类型

使用list()和tuple()函数来转换类型

tuple()将传进的列表变成元组

list()将传进的元组变成列表

list()还可以将传进的字符串变成列表,'he'   ['h', 'e']

引用

变量包含的实际上是对相应的值的引用,而不是包含值的本身!!!  P198

x = 'Howdy'
print(id(x))
x += 'what'
print(id(x))

输出:

2469185556336
2469185556400

而列表不变:

x = ['Howdy', 'what']
print(id(x))
x.append('how')
print(id(x))

输出:

2275408057024
2275408057024

python会自动删除任何变量未被引用的值

传递引用

参数传递给引用,形参得到的是引用

copy模块的copy()和deepcopy()函数

copy()不只是复制引用,而是复制列表或字典这样的可变值

而对于不可变值,可以借助下面的函数进行参考:

import  copy

x = 'alice'
y = copy.copy(x)
print(id(x))
print(id(y))

如果要复制的列表中包含了列表,那么就使用deepcopy(),deepcopy()函数将同时复制它们内部的列表

4.11.1 练习

def getlinks(spam):
    spam_1 = ''
    for item in spam:
        if spam.index(item) != len(spam)-1:
            spam_1 += f"{item} "
        elif spam.index(item) == len(spam)-1:
            spam_1 += f"and {item}"

    return spam_1


spam = ['apples', 'bananas', 'tofu', 'cats']
print(getlinks(spam))

第五章 字典和结构化数据

字典中的项是不排序的,所以不能像列表那样切片

keys()  values() items()方法

以上三种方法将返回字典的键、值、键值对

可以使用in 和 not in 检查字典中是否存在键或值

get()方法

它有两个参数,分别为要取得其值的键,以及当该键不存在时返回的备用值

dictionary.get()

setdefault()方法

setdefault()提供了一种方法,可以在一行中完成这件事,传递给该方法的第一个参数是要检查的键,第二个参数是当该键不存在时要设置的值,如果该键确实存在,那么setdefault()方法就会返回键的值。

美观地输出  pprint()、pformat()函数

如果程序导入了pprint模块,就可以使用pprint()和pformat()函数,它们将美观地输出一个字典的字。如果希望将美观的文本作为字符串输出,而不显示在屏幕上,那就调用pprint.pformat()函数。

字符串操作

转义字符

\'                单引号

\"                双引号

\t                制表符

\n                换行符

\\                倒斜杠

可以在字符串开始的引号前加上r,使它成为原始字符串,原始字符串完全忽略所有的转义字符,可输出字符串中所有的倒斜杠。

print(r'That is Carol\'s cat')

用三重引号的多行字符串

print中三重引号之间的所有引号,制表符或换行符,都被认为是字符串的一部分,\n除外,在三重引号中,回车换行也会体现在输出内容中。转义字符仍然有效。

注释

单行用#号,多行用三重引号

字符串的索引和切片

注意,字符串切片并没有修改原来的字符串。可以从一个变量中获取切片,记录在另一个变量中。

字符串中的in和not in 操作符

和列表一样,in和not in操作符也可以用于字符串。

将字符串放入其他字符串

巧用“字符串插值”

name = 'AI'
age = 4000
print("Hello, my name is %s. I am %s years old" % (name, age))

字符串方法upper(), lower(),isupper(),islower()

upper()和lower()字符串方法返回一个新字符串,其中原字符串的所有字母都相应地转换为大写或小写,字符串中的非字母字符保持不变。

注意这些方法没有改变字符串本身,而是返回一个新字符串,如果你希望改变原来的字符串,那就必须在改字符串上调用upper()或lower()方法,然后将这个字符串赋给保存原来字符串的变量

spam = spam.upper()

如果字符串中含有字符,并且所有字母都是大写或小写,那么isupper()和islower()方法都会相应地返回布尔值True;否则,该方法返回False。

isX()字符串方法

isalpha()  如果字符串只包含字母,并且非空,返回True

isalnum() 如果字符串只包含字母和数字,并且非空。返回True

isdecimal() 如果字符串只包含数字字符,并且非空,返回True

isspace() 如果字符串只包含空格、制表符和换行符,并且非空,返回True

istittle() 如果字符串仅包含以大写字母开头、后面都是小写字母的单词、数字或空格,返回True

字符串方法startswith()和endswith()

如果startswith()和endwith()方法所调用的字符串以改方法传入的字符串开始或结束,那么返回True,否则返回False

字符串方法join()和split()

join()方法可在字符串上被调用,参数是一个字符串列表,返回一个字符串。

注意,调用join()方法的字符串被插入列表参数中每个字符串的中间。

要记住,join()方法是针对一个字符串调用的,并且需要传入一个列表值。

split()方法做的事情正好相反,它针对一个字符串调用,返回一个字符串列表,默认情况下,split()方法按照各种空白字符分隔。也可以向split()方法传入一个分隔字符串,指定它按照不同的字符串分隔。

使用partition()方法分隔字符串

partition()字符串方法可以将字符串分成分隔符字符串前后的文本。

print('Hello,world'.partition('w'))

输出:

('Hello,', 'w', 'orld')   元组

如果传递给partition()方法的分隔符字符串在partition()调用的字符串中多次出现,则该方法仅在第一次出现处分隔字符串。

如果找不到分隔字符串,则返回的元组中的第一个字符串将是整个字符串,而其他两个字符串为空

可以利用多重赋值技巧将3个返回的字符串赋给3个变量

before, sep, after = 'Hello,world'.partition('w')
print(before)
print(sep)
print(after)

用rjust()、ljust()、center()方法对齐文本

rjust()、ljust()字符串方法返回调用它们的字符串的填充版本,通过插入空格来对齐文本。这两个方法的第一个参数是一个整数,代表长度,用于对齐字符串。

'Hello'.rjust(10)表示我们希望右对齐,在'Hello'放在一个长度为10的字符串中

rjust()、ljust()的第二个可选参数将指定一个填充字符,用于取代空格字符

print('Hello'.rjust(10, '*'))

输出:

*****Hello

center()方法与rjust()、ljust()字符串方法类似,但是它让文本居中

用strip()、rstrip()、lstrip()方法删除空白字符

strip()字符串方法将返回一个新的字符串,它的开头和末尾都没有空白字符串

spam.strip('ampS')告诉在变量中存储的字符串两端,删除出现a、m、p和大写S

strip('ampS')和strip('maSp')效果一样

使用ord()和chr()函数的字符的数值

计算机将信息存储为字节(二进制数字串),这意味着我们要能够将文本转换为数字,因此,每个文本都有一个对应的数字值。

我们可以用ord()函数获取一个单字符字符串的代码点

用chr()获取一个整数代码点的单字符字符串

ord('A')

chr(65)

print(ord('砂'))
print(chr(30722))

用pyperclip模块复制粘贴字符串

pyperclip模块有copy()和paste()函数,可以向计算机的剪贴板发送文本或从它接收文本。

这个模版不是Python自带的,需要从第三方安装

  • 40
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程快速上手可以帮助我们实现繁琐工作自动化Python是一种简单易学的编程语言,能够简化我们的工作流程,提高工作效率。 首先,Python具有丰富的函数库和开源工具,使得编写自动化脚本变得更加容易。我们可以使用Python来编写脚本,通过调用不同的库函数来完成各种任务,例如文件操作、数据处理、网络请求等。这些库函数已经被开发者广泛使用和测试,可以为我们节省大量的时间和精力。 其次,Python编程语言具有简洁的语法和优雅的代码风格。相比其他的编程语言,Python的代码更易读、易理解,这使得我们可以更快地上手并编写出高效的自动化脚本。Python的语法结构简单明了,可以大大缩减代码量,提高编码效率。 此外,Python还有丰富的第三方库和工具,如TensorFlow、Pandas、Numpy等,可以方便地进行数据分析、人工智能、机器学习等领域的工作。这些工具以及其提供的函数和方法大大简化了复杂任务的处理,帮助我们快速解决实际问题。 总的来说,Python编程快速上手能够让我们更方便地进行繁琐工作自动化。它的简单易学、优雅的代码风格以及丰富的函数库和工具使得我们能够高效地编写自动化脚本,提高工作效率,减少重复劳动,为我们节约时间和精力。无论是处理数据、完成文件操作,还是进行网络请求,Python都可以成为我们的得力助手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值