# Pyhon基础
# 命名风格
- 变量名
- 使用小写字母和下划线来分隔单词(snake_case),例如:my_variable。
- 避免使用Python关键字和内置函数函数作为变量名
- 函数名
- 同样使用小写字母和下划线分隔单词,例如:def my_function():。
- 函数名应该能清楚的描述函数的功能
- 类名
- 使用驼峰命名法(CamelCase),即每个单词的首字母大写,不使用下划线,例如:class MyClass:。
- 类名应该简介且描述性强
- 常量
- 全部大写字母,并用下划线分隔单词,例如:MAX_VALUE。
- 模块名
- 同样使用小写字母和下划线,例如:my_module.py。
- 模块名应该简洁且描述性强
- 包名
- 通常使用短小的全小写字母,例如:my_package。
- 包名应该简洁且描述性强。
- 方法名
- 与函数名相同,使用小写字母和下划线分隔单词,例如:def my_method(self):。
- 私有变量和方法:
- 在变量或方法名前加一个下划线(_)表示它们是私有的,例如:_private_variable。
- 在变量或方法名前加两个下划线(__)表示它们是受保护的,并且在子类中会被名称改编(name mangling),例如:__private_method。
- 导入
- 导入语句应该放在文件的顶部,按顺序排列:标准库导入,第三方库导入,本地应用/库导入。
- 使用别名时,应该清晰且简短,例如:import numpy as np。
- 空格
- 在操作符周围使用空格,例如:x = 1 + 2。
- 在逗号、冒号、点号、括号等周围不要使用空格。
- 行长度
- 通常一行不应超过79个字符,以便于阅读
# 注释
单行注释
# 单行注释
"""
第一行注释
第二行注释
第三行注释
"""
'''
第一行注释
第二行注释
第三行注释
'''
解释器不执行任何的注释内容
# 变量
变量名 = 值
# 标识符
定义各种名字的统一规范
- 由数字、字母、下划线组成
- 不能数字开头
- 不能使用内置关键字
- 严格区分大小写
# 命名习惯
- 见名知意
- 大驼峰:即每个单词首字母都大写
- 小驼峰:第二个(含)以后的单词字母都大写
- 下划线:例如:my_name
# 使用变量
my_name = 'TOM'
print(my_name)
schoolName = '自定义'
print(schoolName)
定义变量保存圆的半径和圆周率
求圆的面积并用变量保存
# 圆周率
PI = 3.1415926
# 圆的半径
radius = 10
# 圆的面积
area = PI*radius
print(area)
# 认识数据类型
- 整型:int
- 浮点型:float
- 字符串:str
- 布尔型:bool
- 元组:tuple
- 集合:set
- 字典:dict
- 变量练习
列表:列表是一种有序的、可变的数据结构,可以包含不同类型的元素。
my_list = [1, 2, 3, 'a', 'b', 'c']
集合:集合是一种无序的、不可重复的数据结构,但可以添加或删除元素。
my_set = {1, 2, 3, 'a', 'b', 'c'}
元组:元组是一种有序的、不可变、可重复的数据结构。
my_tuple = (1, 2, 3, 'a', 'b', 'c')
TIP
创建空集合使用set(),创建空字典使用{}
# 输出
作用:程序输出内容给用户
print('hello Python')
age = 18
print(age)
# 需求:输出“今年我的年龄是18岁”
# 格式化输出
按照一定的格式输出内容
格式符号 | 转换 |
---|---|
==%s== | 字符串 |
==%d== | 有符号的十进制整数 |
==%f== | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写'e') |
%E | 科学计数法(大写'E') |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
- %06d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出
- %.2f,表示小数点后显示的小数位数
age = 18
name = 'TOM'
weight = 75.5
student_id = 1
# 我的名字是TOM
print('我的名字是%s' % name)
# 我的学号是001
print('我的学号是%d' % student_id)
# 我的体重是
print('我的体重是%.2f公斤' % weight)
# 我的名字是TOM, 今年18岁了
print('我的名字是%s, 明年%d岁了' % (name, age + 1))
# 我的名字是TOM,明年19岁了
print(f'我的名字是{name}, 明年{age + 1}岁了')
f-格式化字符串是Python3.6中新增的格式化方法,该方法更简单易读
# 转义字符
- \n: 换行
- \t: 制表符,tab键
# 结束符
print('输出的内容', end="\n")
在python中,print(),默认自带end="\n"这个换行结束符,所以导致每个print直接会换行展示,用户可以按需求更改结束符
# 输入
程序接收用户的输入
input("提示信息")
# 输入的特点
- 当程序执行到input,等待用户输入,输入完成之后才继续向下执行
- 在python中,input接收用户输入后,一般存储到变量,方便使用
- 在Python中,input会把接收到的任意用户输入的数据都当做字符串处理
password = input('请输入密码:')
print(f'您输入的密码是{password}')
# <class 'str'>
print(type(password))
TIP
input接收的任何数据默认都是字符串类型
# 数据类型转换
问:input()接收用户输入的数据都是字符串类型,如果用户输入1,想得到整型该如何操作?
答:转换数据类型即可,即将字符串类型转换成整型。
# 数据类型转换的函数
函数 | 说明 |
---|---|
==int(x [,base ])== | 将x转换为一个整数 |
==float(x )== | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
==str(x )== | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
==eval(str )== | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
==tuple(s )== | 将序列 s 转换为一个元组 |
==list(s )== | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个Unicode字符 |
ord(x ) | 将一个字符转换为它的ASCII整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
bin(x ) | 将一个整数转换为一个二进制字符串 |
# 体验
# 1. 接收用户输入
num = input('请输入您的幸运数字:')
# 2. 打印结果
print(f'您的幸运数字是{num}')
# 3. 检测收到的用户输入的数据类型 --str类型
print(type(num))
# 4. 转换数据类型 -- int 类型
print(int(num))
print(type(num))
print(type(int(num)))
# 实验
# 1. float() -- 转换成浮点型
num1 = 1
print(float(num))
print(type(float(num1)))
# 2. str() -- 转换成字符串
num2 = 10
print(type(str(num2)))
# 3. tuple() -- 将一个序列转换成元祖
list1 = [10, 20, 30]
print(type(list1))
print(tuple(list1))
print(type(tuple(list1)))
# 4. list() -- 将一个序列转换成列表
t1 = (100, 200, 300)
print(type(t1))
print(list(t1))
print(type(list(t1)))
# 5. eval() -- 将字符串中的数据转换成python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(100, 200, 300)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))
# 常用
- int()
- float()
- str()
- list()
- tuple()
- eval()
# 运算符
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
# 算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1-1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为2 |
% | 取余 | 9 % 4 输出结果为 1 |
** | 指数 | 2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
WARNING
混合运算优先级顺序:()
高于 **
高于 *
/
//
%
高于 +
-
# 赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将= 右侧的结果赋值给等号左侧的变量 |
- 单个变量赋值
num = 1
print(num)
- 多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)
- 多变量赋相同值
a = b = 10
print(a)
print(b)
# 复合赋值运算
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a 等价于 c = c + a |
-= | 减法赋值运算符 | c -= a 等价于 c = c- a |
*= | 乘法赋值运算符 | c *= a 等价于 c = c * a |
/= | 除法赋值运算符 | c /= a 等价于 c = c / a |
//= | 整除赋值运算符 | c //= a 等价于 c = c // a |
%= | 取余赋值运算符 | c %= a 等价于 c = c % a |
**= | 幂赋值运算符 | c ** = a 等价于 c = c ** a |
a = 100
a += 1
# 输出101 a = a + 1, 最终a = 100 + 1
print(a)
b = 2
b *= 3
# 输出6 b = b * 3,最终 b = 2 * 3
print(b)
c = 10
c += 1 + 2
# 输出13, 先算运算符左侧1+2 = 3, c += 3, 推导出c = 10 + 3
print(c)
# 比较运算符
比较运算符也叫关系运算符,通常用来判断
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True如a=1,b=3,则(a != b) 为 True |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False如a=3,b=3,则(a >= b) 为 True |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
a = 7
b = 5
print(a == b)
print(a != b)
print(a < b)
print(a > b)
print(a <= b)
print(a >= b)
# 逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
a = 1
b = 2
c = 3
print((a < b) and (b < c))
print((a > b) and (b < c))
print((a > b) or (b < c))
print(not(a > b))
# 拓展
数字之间的逻辑运算
a = 0
b = 1
c = 2
# and运算符, 只要一个值为0, 则结果为0,否则结果为最后一个非0数字
print(a and b) # 0
print(b and a) # 0
print(a and c) # 0
print(c and a) # 0
print(b and c) # 2
print(c and b) # 1
# or运算符,只有所有值为0结果才为0,否则结果为第一个非0的数字
print(a or b) # 1
print(a or c) # 2
print(b or c) # 1
流程控制 →