# 其他语言 python
temp = x x,y = y,x
x = y
y = temp
####1. 整数 :int(没有short,int,long之分) ####2. 小数 :float(没有单精度和双精度之分,实际上为其他语言的双精度)
'hello world!'
'let"s go' // 使用两个单引号或者双引号括住一个引号的句子
'''
hello
hello
hello
''' // 使用3个单双引号定义多行字符串
# '\nhello\nhello\n' out of IDLE
print("""hello\nhello\nhello\n""") //使用print函数有换行特性
"hello\ //单双引号换行方式
world"
print(r"c:\dev\env") // 字符串之前加r使其成为原始字符串
"hello" + "world"
# helloworld out
"hello" *3
# hellohellohello out
"hello"[0]
# h out
"hello"[-1]
# o out
"hello"[0:4]
# hell // 0--起始下标,4---步长(要取的字符的下标加1,大于整个字符串长度时,取到整个起始到最后)
"hello"[0:]
# hello out
"hello"[:5]
# hello out
['123',123,"积分",True,Flase] # 可以加入任意的类型
type([1])
# list out
[[1,2],[true,"123"],["1","2"]] # 嵌套列表也称为二维列表
["q","w","s","d"][0]
# 'q' out
["q","w","s","d"][0:2]
# ['q','w'] out
["q","w","s","d"][-1:]
# ['d'] ps:直接写下标会显示单个字符串,而使用冒号还是显示列表
["1","2"] * 3
# ["1","2","1","2","1","2"] out
(1,2,True,False) // 跟列表类似
(1,2,3) + (4,5,6)
# (1,2,3,4,5,6) out
(1,2) * 2
# (1,2,1,2) out
# 一个特别的现象 //ps:list不会有这种现象
type((1)) // out : int类型
// 因为这里元组()和运算符号()产生了冲突,所以编译器默认将元组内只有一个元素时类型定义为其元素的类型
// 而不是元组tuple类型
# 如何解决?
(1,) // 假装不是一个元素即可
() // 定义了一个空元组
// 共有的操作
'hello world!'[2] // 序列里面每个元素都会被分配一个序号,有序。
[1,2,3,4,5][0:] // 学名:切片
[1,2,3] */+ // 可以进行数乘运算(*/+)
3 in [1,2,3] // 3是否在列表中
# True
3 not in [1,2,3] // 不在列表内
len([1,2,3])
max([1,2,3])
min([1,2,3])
max("hello world!") // 这里会根据ASCI编码来选出最大的字符
ord("c") // 输出该字符的ASCI码
type({1,2,3,4})
# <class 'set'> out
{1,2,3}[1]
# 报错 // 集合的特性一:无序
{1,1,2,2,3,3}
# {1,2,3} out // 集合的特性二:不重复
{1,2,3,4,5,6} - {4,5}
# {1,2,3,6} // 求两个集合的差集
{1,2,3,4,5,6} & {4,5}
# {4,5} // 两个集合的交集
{1,2,3,4} | {4,6}
# {1,2,3,4,6} // 两个集合的并集(去重合并)
# 定义一个空集合?
set()
# {key1:value1,key2:value2...}
{"1":"one","2":"two"}["1"]
# 'one' // 通过key来访问value
{"1":"one","2":"two","1","three"}
# {"1":"three","2":"two"} // 出现相同key时会覆盖原值
# value取值 任意python基本类型
# key取值原则 *不可变* // ps:元组可以,list不行
A = [1,2,3,4]
print(A)
B = [1,2]
A * 3 + B + A
1.首字母不能是数字
2.首字母可以是字母,_
3.不能使用系统关键字 // 保留关键字
4.区分大小写
a = 1
b = a
a = 2
print(b)
1
a = [1,2,3]
b = a
a[0] = "1"
print(b)
["1",2,3]
# int str tuple(不可改变) 值类型 list set dict(可变) 引用类型
# 证明str是不可改变
a = "hello"
print(id(a))
# 444
a = a + " world"
print(id(a))
# 555 // 从这里看出a换了一个位置,已经不是原来的地址
"hello"[0] = "l" // 这里会报错,字符串是不能改变的
-
算术运算符
- // 整除
- % 求余数
- ** 乘方 2**2 = 4
-
赋值运算符
- 落实到赋值(这个很重要)
- 没有自增自减
-
比较运算符
- 不止是比较数字
- 序列都可以
-
逻辑运算符
- 操作和返回都是bool类型
- "a" 1 都是bool类型都是True
- int float 为0都是False
- 空字符串为False
- 空列表为False
1 and 0
1 and 2
1 or 2
- 成员运算符 - 判断一个元素是否在另外一组元素内 - 返回值为bool值 - 特别的,字典使用是检测的是key - 身份运算符 - == 比较的是两个变量的值,is比较的两个变量的身份(内存地址)是否相等 - 变量的三个特征 id type value - 判断类型 isinstance(a,int) or isinstance(a,(int, float))
not a or b + 2 == c
# false // 没有 = 赋值时候基本上是从左到右运算2
// not > and > or
# ((not a) or ((b + 2) == c)
ctrl + ` --- 调出控制台
tab --- 自动补全文件名
# 流程控制语句
# --- 单行注释
'''
code
''' --- 多行注释
# tip
ctrl + / --- vscode中单行注释
alt + shift + a --- 选中多行注释
# constant --- 形式上的常量
account = "1" // python中没有严格意义上的常量
ACCOUNT = "1" // 代码规范是要将形式上的常量全部用大写代替
# vscode中使用bash作为默认终端
// 在用户设置中添加如下代码
// 配置git-bash为默认终端
"terminal.integrated.shell.windows": "C:\\dev\\env\\Git\\bin\\bash.exe"
# snippet 片段
# if code:
# pass
# else:
# pass
a = True
if a:
print("hello")
else:
print("bye bye")
// 进入snippet 代码片段内可以直接按tap编写if条件,if内
# pass 空语句/占位符
if True:
pass // 空语句/占位符号
elif的使用代替switch(python没有)
for的使用
for x in range(0,10): // 0 开始下标,10是偏移量,从0开始总共10个数
print(x)
a = [1,2,3,4,5,6,7,8]
# for i in range(0,len(a),2):
# print(a[i], end="|")
b = a[0:len(a):2]
print(b) // 使用切片实现步进打印
# 普通文件夹变成包
在文件夹内添加一个__init__.py文件
__init__模块的名字就是其包名
# 导入的多种形式
// one
from c import a
print(a)
// two
from c import *
print(a)
print(d)
print(c)
// three
# c
__all__ = ["a","d"]
a = 2
d = 3
c = 2
# c1
from c import *
print(a)
print(d)
print(c) // 此时就会出错,因为c中定义了__all__变量使之导入时候只会导入a d
// four
from c import a,b,\
c
// five ***
from c import (a,b
c)
# __init__模块批量导入功能
直接在__init__.py文件内引入所需要的包,然后在需要的模块中引入__init__模块即可
## 包和模块是不会被重复导入的
## 避免循环导入
即两个模块互相导入
### 形成了一个闭链
- 导入一个模块,就会执行该模块内所有代码
- 入口文件
- 功能性
- 隐藏细节
- 避免编写重复的代码
-
round()
- 可以实现数字的四舍五入的取值
- Round a number to a given precision in decimal digits
-
这里返回一个元组
def damage(skill1,skill2): damage1 = skill1 * 3 damage2 = skill2 * 2 + 10 return damage1,damage2
skill1_damage,skill2_damage = damage(2,3)
print(skill1_damage,skill2_damage)