python3 基础语法
# TODO注释 (pycharm)
## TODO(小明) 注释内容
# shebang符合指定linux下的执行路径
##! /user/bin/python3
# 基本运算符
+ - * / :加减乘除
// :整除
% :除余
** :乘方
字符串*号拼接:“hello”*10
赋值运算
c=a+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
bool值true在计算过程中等于1
# 基本函数方法
input() 输入函数,输入后获取的数据类型都是str
type() 查看数据类型
int() 转换数据为整数
float() 转换数据为浮点小数
# 格式化字符串输出
语法如下
name=“小明”
print(“格式化字符串%s”%name)
print(“格式化字符串”%(变量1,变量2,。。。))
# if判断语句
age = 18
if age>=18:
print(“go”) #使用缩进控制if控制代码块
else:
print(“back”)
elif 继续条件判断
# 逻辑运算符
or 或者
and 并且
not 非
# 循环语句
i=0
while i<=10:
i+=1
if i==2:
continue # 跳出本次循环,继续其他循环
if i==6:
break # 跳出所有循环
print(“hello)
for 变量 in 集合:
循环代码
else:
循环全部结束后,执行代码,如果通过break退出循环则不执行
# 函数基本使用
## 定义函数
def say_hello(): #def 定义函数关键字
print(“hello”)
say_hello() # 调用函数
## 传参与返回值
def sun_num(num1, num2):
print("%d + %d = %d" % (num1, num2, num1 + num2))
return num1 + num2
#如果返回值是元组类型,小括号省略 return num1,num2
print(sun_num(3, 5))
## 缺省参数使用
def demo(name, title=””,gender=True): # 通过形参赋值的形式给参数指定默认值,缺省承参数之后不能定义无默认值的参数,如需定义,写在缺省参数之前
print(name)
if not gender:
print(gender)
调用多个缺省参数函数时,可以通过对参数直接赋值调用
demo(“小明”,gender=False)
## 多值参数使用
def demo(num, *nums, **person): #一个*接收元组,两个*接收字典
print(num) # 输出1
print(nums) # 输出 (2,3,4,5)
print(person) # 输出 {'name': '小明', 'age': 16}
demo(1, 2, 3, 4, 5, name="小明", age=16)
### 多值参数拆包输入
def demo(*nums, **person):
print(nums)
print(person)
demo(*(1, 2, 3), **{'name': '小明', 'age': 16}) # 一个*拆分元组,两个*拆分字典
# 模块导入
导入并使用模块,py结尾的文件都可以看做是一个模块,python模块名不能以数字开头
tb_01_hello,py 中定义方法
def mul_table():
row = 1
while row <= 9:
col = 1
while col <= row:
print("%d * %d = %d" % (col, row, col * row), end="\t")
col += 1
print("")
row += 1
tb_02_mode.py 中引入模块并调用方法
import tb_01_hello
tb_01_hello.mul_table()
# 列表数据类型
name_list = ["aa", "bb", "cc"]
print(name_list[1])
可以使用list[0:0:1]进行切片
## 遍历列表使用for循环
for item_name in name_list:
print(item_name)
# 元组数据类型(类似列表)
元组中可以存储不同数据类型的数据,但是元组中的元素不能修改
定义只包含一个元素的元组 single_tuple = (1,),需要在元素后输入, 因为缺少逗号,解释器会认为括号内元素就是需要的内容
tuple() :转换列表为元组
list() :转换元组为列表
## 使用,分割多个变量直接接受元组数据
temp1,temp2=(23,56)
a,b=(b,a) #a与b值交换
# 字典数据类型(键值对)
xiaoming = {
"name": "xiaoming",
"age": 18,
"gender": "male"
}
h = "height"
xiaoming[h] = "178"
print(xiaoming["name"])
print(xiaoming)
## 删除key:dict.pop(key)
## 合并字典
xiaoming = {
"name": "xiaoming",
"age": 18,
"gender": "male"
}
update_dict = {
"height": "178",
"age": 22
}
xiaoming.update(update_dict)
合并时需要注意,如果原有字典中包含合并字典中的key则原有的value会被覆盖
## 遍历字典
for key in xiaoming:
print(key)
print(xiaoming[key])
# 字符串数据类型
str = "这是个字符串"
print(str[2]) # 打印对应索引的字符串
## 遍历字符串
for itemStr in str:
print(itemStr)
## 常用内置操作方法
len() :统计字符串字节数
str.count(“个”) :统计某个字符出现次数
str.index(“个”) :查询某个字符对应的索引
str.isspace() :判断字符是否为空,“\t\n\r”转义字符也都为空
str.isdecimal() :判断是否为纯数字
str.strip() :删除空白字符
str.split(“,”) :按照输入字符,拆分字符串为列表,如果没有参数,则按照所有空白字符分割
“ ”.join(list) :按照需求,合并字符串列表为字符串
str[0:5:2] : 截取字符串,0为开始索引,5为结束索引,2为步长。如果索引为-1表示最后一个字符,也可为-2;如果步长为-1表示向左取值,简单实现字符串倒叙:str[-1::-1]或str[::-1]
### 字符串替换查找
str = "hello world"
print(str.startswith("hello")) #判断字符串是否以此开头
print(str.endswith("world")) #判断字符串是否以此结尾
print(str.find("ll")) #查找此字符在字符串中对应的索引值,如果不存在,返回-1并不报错
print(str.replace("world","python")) #replace进行字符串替换,会返回一个新的字符串,久的不变
# 内置方法
Id(param) : 查看变量对应的内存地址
print(“*”,end=“ ”) 默认换行,end指定替换换行的内容
print中的转义字符
\t # 保证输出内容在垂直方向对齐
\n # 水平方向换行
\”# 输出双引号
print(“1\t2\t3”)
print(“10\t20\t30”)
random
random.randint(1,10) 随机一个1-10的整数
## 所有数据类型包含的公共方法
len() :返回列表元素数量
del() :删除对应的数据
max([1,2,3,8]) :返回列表中最大的值 ,统计字典时返回key,并不是key对应的值
min([1,2,3,8]) :返回列表中最小的值 ,统计字典时返回key,并不是key对应的值
## 字符串,列表,元组通过+进行拼接
“hello ”+“python”= “hello python”
(1,2) + (3,4) = (1,2,3,4)
[1,2] + [3,4]] = [1,2,3,4] 本质是调用extend方法
## 成员运算符 in , not in
“a”in “abcd”
## pass关键字占位符,保证代码运行正确,不会有任何执行过程
# 局部变量与全局变量
## 局部变量
函数内部定义的变量,只能在函数内部使用
## 全局变量
函数外部定义的变量,所有函数内部外部都能使用这个变量
全局不变案例:
num = 10
def demo1():
num = 99
print(num) # 输出99 ,
如果在函数中对全局变量进行修改,相当于重新声明了一个同名局部变量,全局变量不会变
def demo2():
print(num) # 输出10
demo1()
demo2()
### 全局变案例:
1.赋值改变
num = 10
def demo1():
global num # 通过global关键字声明变量为全局变量,则可以在局部对其进行
num = 99
print(num) # 输出99
def demo2():
print(num) # 输出99
demo1()
demo2()
2.可变数据类型,全局数据改变
def demo(num_list):
num_list.append(9) #因为是通过方法改变可变数据类型的值,其全局值也改变
print(num_list) # 输出[1,2,3,9]
gl_num_list = [1, 2, 3]
demo(gl_num_list)
print(gl_num_list) # 输出[1,2,3,9]
3.列表+=操作
def demo(num_list):
num_list+=num_list #看似=赋值,其实列表+=时本质是调用extend方法
print(num_list) # 输出[1,2,3,1,2,3]
gl_num_list = [1, 2, 3]
demo(gl_num_list)
print(gl_num_list) # 输出[1,2,3,1,2,3]