python_note

简介

历史

Python由荷兰数学和计算机科学研究学会的[Guido van Rossum](https://baike.baidu.com/item/Guido van Rossum/3225314) 于1990 年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。

领域

  • Web 开发(服务器端)
  • 软件开发
  • 数学
  • 系统脚本

特点

  1. 解释型语言

  2. 底层用c语言编写

  3. 开源,免费

  4. 可移植

基础命令

查看版本

python --version

退出 python 命令行界面

exit()

基础语法

缩进

缩进指的是代码行开头的空格。在其他编程语言中,代码缩进仅出于可读性的考虑,而 Python 中的缩进非常重要。Python 使用缩进来指示代码块

错误实例

if 5 > 2:
print("Five is greater than two!")

正确实例

if 5 > 2:
  print("Five is greater than two!")

空格数取决于程序员,但至少需要一个。

注释

Python 拥有对文档内代码进行注释的功能。注释以 # 开头,Python 将其余部分作为注释呈现:

Python 中的单行注释:

#This is a comment.
print("Hello, World!")

Python中的多行注释:

"""
This is a comment
written in 
more than just one line
"""
print("Hello, World!")

#可以使用单引号和多引号

'''
This is a comment
written in 
more than just one line
'''
print("Hello, World!")

变量

变量是存放数据值的容器。

与其他编程语言不同,Python 没有声明变量的命令。首次为其赋值时,才会创建变量。

x = 10
y = "Bill"
print(x)
print(y)

变量不需要使用任何特定类型声明,甚至可以在设置后更改其类型。

变量命名规则

变量可以使用短名称(如 x 和 y)或更具描述性的名称(age、carname、total_volume)。

Python 变量命名规则:

  • 变量名必须以字母或下划线字符开头
  • 变量名称不能以数字开头
  • 变量名只能包含字母数字字符和下划线(A-z、0-9 和 _)
  • 变量名称区分大小写(age、Age 和 AGE 是三个不同的变量)

请记住,变量名称区分大小写

全局变量

在函数外部创建的变量(如上述所有实例所示)称为全局变量。

全局变量可以被函数内部和外部的每个人使用。

global 关键字

通常,在函数内部创建变量时,该变量是局部变量,只能在该函数内部使用。

要在函数内部创建全局变量,您可以使用 global 关键字。

内置数据类型

在编程中,数据类型是一个重要的概念。

变量可以存储不同类型的数据,并且不同类型可以执行不同的操作。

在这些类别中,Python 默认拥有以下内置数据类型:

文本类型:str
数值类型:int, float, complex
序列类型:list, tuple, range
映射类型:dict
集合类型:set, frozenset
布尔类型:bool
二进制类型:bytes, bytearray, memoryview

获取数据类型

您可以使用 type() 函数获取任何对象的数据类型:

x = 10
print(type(x))

复数( complex)

复数用 “j” 作为虚部编写:

x = 2+3j
y = 7j
z = -7j

print(type(x))
print(type(y))
print(type(z))

字符串

Python 中的字符串是表示 unicode 字符的字节数组。但是,Python 没有字符数据类型,单个字符就是长度为 1 的字符串

多行字符串

使用三个引号将多行字符串赋值给变量:

a = """Python is a widely used general-purpose, high level programming language. 
It was initially designed by Guido van Rossum in 1991 
and developed by Python Software Foundation. 
It was mainly developed for emphasis on code readability, 
and its syntax allows programmers to express concepts in fewer lines of code."""
print(a)
字符串是数组

方括号可用于访问字符串的元素。(默认第一位是0)

a = "Hello, World!"
print(a[1])

获取从位置 2 到位置 5(不包括)的字符:

b = "Hello, World!"
print(b[2:5])
字符串方法

Python 有一组可用于字符串的内置方法。

删除

strip() 方法删除开头和结尾的空白字符:

a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"
返回小写的字符串

lower() 返回小写的字符串:

a = "Hello, World!"
print(a.lower())
返回大写的字符串

upper() 方法返回大写的字符串:

a = "Hello, World!"
print(a.upper())
替换字符串

replace() 用另一段字符串来替换字符串:

a = "Hello, World!"
print(a.replace("World", "Kitty"))
拆分为子字符串

split() 方法在找到分隔符的实例时将字符串拆分为子字符串:

a = "Hello, World!"
print(a.split(",")) # returns ['Hello', ' World!']
检查字符串

检查以下文本中是否存在短语 “ina”:

txt = "China is a great country"
x = "ina" in txt #没有就用 not in
print(x)
字符串方法(内建)

所有字符串方法都返回新值。它们不会更改原始字符串。

方法描述
capitalize()把首字符转换为大写。
casefold()把字符串转换为小写。
center()返回居中的字符串。
count()返回指定值在字符串中出现的次数。
encode()返回字符串的编码版本。
endswith()如果字符串以指定值结尾,则返回 true。
expandtabs()设置字符串的 tab 尺寸。
find()在字符串中搜索指定的值并返回它被找到的位置。
format()格式化字符串中的指定值。
format_map()格式化字符串中的指定值。
index()在字符串中搜索指定的值并返回它被找到的位置。
isalnum()如果字符串中的所有字符都是字母数字,则返回 True。
isalpha()如果字符串中的所有字符都在字母表中,则返回 True。
isdecimal()如果字符串中的所有字符都是小数,则返回 True。
isdigit()如果字符串中的所有字符都是数字,则返回 True。
isidentifier()如果字符串是标识符,则返回 True。
islower()如果字符串中的所有字符都是小写,则返回 True。
isnumeric()如果字符串中的所有字符都是数,则返回 True。
isprintable()如果字符串中的所有字符都是可打印的,则返回 True。
isspace()如果字符串中的所有字符都是空白字符,则返回 True。
istitle()如果字符串遵循标题规则,则返回 True。
isupper()如果字符串中的所有字符都是大写,则返回 True。
join()把可迭代对象的元素连接到字符串的末尾。
ljust()返回字符串的左对齐版本。
lower()把字符串转换为小写。
lstrip()返回字符串的左修剪版本。
maketrans()返回在转换中使用的转换表。
partition()返回元组,其中的字符串被分为三部分。
replace()返回字符串,其中指定的值被替换为指定的值。
rfind()在字符串中搜索指定的值,并返回它被找到的最后位置。
rindex()在字符串中搜索指定的值,并返回它被找到的最后位置。
rjust()返回字符串的右对齐版本。
rpartition()返回元组,其中字符串分为三部分。
rsplit()在指定的分隔符处拆分字符串,并返回列表。
rstrip()返回字符串的右边修剪版本。
split()在指定的分隔符处拆分字符串,并返回列表。
splitlines()在换行符处拆分字符串并返回列表。
startswith()如果以指定值开头的字符串,则返回 true。
strip()返回字符串的剪裁版本。
swapcase()切换大小写,小写成为大写,反之亦然。
title()把每个单词的首字符转换为大写。
translate()返回被转换的字符串。
upper()把字符串转换为大写。
zfill()在字符串的开头填充指定数量的 0 值。

布尔

布尔表示两值之一:True 或 False。

评估值和变量

bool() 函数可让您评估任何值,并为您返回 True 或 False。

print(bool("Hello"))
print(bool(10))

大多数值都为 True

如果有某种内容,则几乎所有值都将评估为 True。

除空字符串外,任何字符串均为 True。

除 0 外,任何数字均为 True。

除空列表外,任何列表、元组、集合和字典均为 True。

某些值为 False

实际上,除空值(例如 ()、[]、{}、""、数字 0 和值 None)外,没有多少值会被评估为 False。当然,值 False 的计算结果为 False。

随机数

Python 没有 random() 函数来创建随机数,但 Python 有一个名为 random 的内置模块,可用于生成随机数:

导入 random 模块,并显示 1 到 9 之间的随机数:

import random

print(random.randrange(1,10))

格式化输出

使用 print() 函数

在 Python 中,print() 函数支持格式化输出,与 C 语言的 printf 类似。

格式化输出浮点数

PI = 3.141592653
print("pi1 = %10.3f" % PI)  # 总宽度为10,小数位精度为3
print("pi2 = %.*f" % (3, PI))  # *表示从后面的元组中读取3,定义精度
print("pi3 = %010.3f" % PI)  # 用0填充空白
print("pi4 = %-10.3f" % PI)  # 左对齐,总宽度10个字符,小数位精度为3
print("pi5 = %+f" % PI)  # 在浮点数前面显示正号
  1. %()元组可以包含一个或多个值,如变量或表达式,用来向字符串中%操作符传递值,元组包含元素数量、顺序都必须与字符串中%操作符一一对应,否则将抛出异常。

  2. %()元组必须位于字符串的后面,否则无效。如果字符串中只包含一个%操作符,那么也可以直接传递值。例如:

str1 = "AmoXiang.length = %d" % len("AmoXiang")
print(str1)  # 输出AmoXiang.length = 8

在格式化输出数字或字符串时,可以附加辅助指令来完善格式化操作。具体说明如下表所示:

在这里插入图片描述

f-string

f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法。f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式

a=10
print(f'num is {a}')

使用 str.format() 方法

% 操作符是传统格式化输出的基本方法,从 Python 2.6 版本开始,为字符串数据新增了一种格式化方法 str.format(),它通过 {} 操作符和 : 辅助指令来代替 % 操作符。

通过位置索引值

print('{0} {1}'.format('Python', 3.7))  # Python 3.7
print('{} {}'.format('Python', 3.7))  # Python 3.7
print('{1} {0} {1}'.format('Python', 3.7))  # 3.7 Python 3.7

在字符串中可以使用 {} 作为格式化操作符。与 % 操作符不同的是,{} 操作符可以通过包含的位置值自定义引用值的位置,也可以重复引用。

输入

x=input("提示信息")

输入默认为str类型

多组输入

while True:
    try:
        a,b = map(int,input().split())
        print(a+b)
    except: ##except EOFError:break
        break;

运算符

算数运算符
运算符名称实例
+x + y
-x - y
*x * y
/x / y
%取模x % y
**x ** y
//地板除(取整除)x // y

赋值运算符

运算符实例等同于
=x = 5x = 5
+=x += 3x = x + 3
-=x -= 3x = x - 3
*=x *= 3x = x * 3
/=x /= 3x = x / 3
%=x %= 3x = x % 3
//=x //= 3x = x // 3
**=x **= 3x = x ** 3
&=x &= 3x = x & 3
|=x |= 3x = x | 3
^=x ^= 3x = x ^ 3
>>=x >>= 3x = x >> 3
<<=x <<= 3x = x << 3

比较运算符

运算符名称实例
==等于x == y
!=不等于x != y
>大于x > y
<小于x < y
>=大于或等于x >= y
<=小于或等于x <= y

逻辑运算符

运算符描述实例
and如果两个语句都为真,则返回 True。x > 3 and x < 10
or如果其中一个语句为真,则返回 True。x > 3 or x < 4
not反转结果,如果结果为 true,则返回 Falsenot(x > 3 and x < 10)

身份运算符

身份运算符用于比较对象,不是比较它们是否相等,但如果它们实际上是同一个对象,则具有相同的内存位置:

运算符描述实例
is如果两个变量是同一个对象,则返回 true。x is y
is not如果两个变量不是同一个对象,则返回 true。x is not y

位运算符

位运算符用于比较(二进制)数字:

运算符描述实例
&AND如果两个位均为 1,则将每个位设为 1。
|OR如果两位中的一位为 1,则将每个位设为 1。
^XOR如果两个位中只有一位为 1,则将每个位设为 1。
~NOT反转所有位。
<<Zero fill left shift通过从右侧推入零来向左移动,推掉最左边的位。
>>Signed right shift通过从左侧推入最左边的位的副本向右移动,推掉最右边的位。

判断语句

if

注意缩进

a = 200
b = 66
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")
else:
  print("a is greater than b")

pass 语句

if 语句不能为空,但是如果您处于某种原因写了无内容的 if 语句,请使用 pass 语句来避免错误。

a = 66
b = 200

if b > a:
  pass

循环

while

i = 1
while i < 7:
  print(i)
  if i == 3:
    break
  i += 1
else 语句
i = 1
while i < 6:
  print(i)
  i += 1
else:
  print("i is no longer less than 6")

for

for 循环不需要预先设置索引变量。

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)
for x in "banana":
  print(x)
range() 函数

如需循环一组代码指定的次数,我们可以使用 range() 函数,

range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。

for x in range(10):
  print(x)

range(10) 不是 0 到 10 的值,而是值 0 到 9。

range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(3, 10),这意味着值为 3 到 10(但不包括 10):

else

for 循环中的 else 关键字指定循环结束时要执行的代码块:

for x in range(10):
  print(x)
else:
  print("Finally finished!")
pass

for 语句不能为空,但是如果您处于某种原因写了无内容的 for 语句,请使用 pass 语句来避免错误。

for x in [0, 1, 2]:
  pass
 fruits:
  print(x)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值