【Python基础语法】
字面量:代码中静态,写死的值
基本中的基本类型
注释
1.
#单行注释
2.
"""
多行注释
"""
3.
选中多行,ctrl+/快捷多行添加单行注释
#
#
#
变量:数据的动态载体
python中不需要显式定义变量类型,不同于cpp等语言
python语句没有尾部加分号的要求";"
标识符:方法,类,变量的名字,是内容的标识,大小写敏感,仅允许出现英文,中文,数字,下划线_,但不推荐使用中文(但可以)
大小写是不同变量
变量名
变量名=变量值
var1=985
var2=984.5
var3="UESTC"
print(var3,"是",var1)#输出多个数据,逗号隔开即可,是变量则读取,不是变量直接打印.
哈哈 = "汉字也可以作变量名"
print(哈哈)
global
错误示例:全局在函数生命周期(执行期间外)看不到里面定义的变量
def globevar():
c = "考研加油" # 局部变量
globevar()
print(c)
a=0
b=0
def globevar():
# 在py中,因为变量的声明不用关键字,所以额外注意=操作是赋值还是初始化
# 在这个函数里,data变量是局部的,外部变量data不会被修改,=起到了初始化局部变量而非对赋值全局变量的操作
# global关键字声明的变量,如果与全局变量重名,则这个就是全局变量的引用,即不再是局部变量,从而可以修改同名的外面的变量
# global等关键字声明的变量无法同时初始化
b=10
global a # 让函数内定义的变量成为全局变量,如果已有此名字的全局变量,则是对其引用
a=10
globevar()
print(a,b)
数据类型的验证type()
#1.print+type输出字面量类型
print(type(23))
#2.print+type输出变量类型
var0="haha"
print(type(var0))
#3.声明变量存储type()函数结果
var1=type(23.0)
var2=type(23.00001)
var3=type("023")#var3是str字符串类型
print(var1,var2,var3)
#变量没有类型,数据有类型,或者理解为,变量的类型随着数据而变
var3=985#而现在var3是整形int
print(type(var3))
数据类型转换及注意事项
x转化为int,float,string类型:int(x)float(x)str(x)
这三个函数的转换结果以返回值表示,可以存,可以输出,不会改变原变量类型(原来在于先复制原数据,再转化)
int和float互转精度发生变化
从文件中读取的数字以及input()语句,默认是字符串,我们需要转换成数字类型
将数字转换成字符串是用以写出到外部系统
etc…
# 量类型的转换
var1 = 123
print(var1) # 123
print(type(var1)) # int
var2 = float(var1)
print(var1) # 123
print(type(var1)) # int
print(var2) # 转化结果:123.0
var3 = "123"
print(var3, type(var3), type(float(var3)))
运算符
"""
算数运算符
+=*
/带小数的除法
//求整除
%取余
**指数
"""
op = 10
print(op,op+op,op-op)
op1=100
op2=3
print(op1/op2,op1//op2,op1%op2,op1**op2)
算数运算符加上=则对自身运算
字符串与转义字符 \ 号
#单引号定义法:
namea='加沙a'
#双引号定义法:
nameb="加沙b"
#三引号定义法:如果是多行注释的三个双引号,用变量接收就是字符串,不接就是多行注释,且支持换行
namec="""加沙c"""
#欲显示单双引号,可以外面套个双单引号来定义字符串
name2="'加沙2'"#显示''
name3='"加沙3"'#显示""
#转义字符也可显示任何通配符,适用于两个单,或者两个双时
name6='\'加沙6\''
name7="\"加沙7\""
print(namea,nameb,namec,name2,name3,name6,name7)
字符串拼接
"""
+号拼接: 字符串拼接可以通过+
占位型拼接:类似但有别于C语言的printf("%d,%char",var1,var2)
通过占位的形式%拼接字符串,就是变量前面放一个%,然后字面量间插入即可
%s,占位一个数字
%d,占位一个数字
多个变量占位,变量组合要用括号括起来,逗号分割,占位顺序填入,但是后续还要插入就需要+拼接
"""
"""
总结:标准格式
单个尾插:"abc%s"%var #表示abc+变量var值
多个尾插:"abc%s%s"%(var1,var2)
中间多个插入:"abc%s%s"%(var1,var2)+"abcabc"
"""
var='电子科技大学'
print('我的名字是'+var+'我在清水河等你')
var1="川大"
message="学文理就来找%s"%var1#字面量定义时,固定的写死,会变的部分用变量接受,然后%占位进去
print(message)
var2="川师"
var3="成理"
message="%s,%s"%(var2,var3)+"也挺好"
print(message)
message="%s和%s"%(var,var1)+",%s和%s"%(var2,var3)+"是我朋友在的地方"
print(message)
占位符m,n的数据精度控制
"""
格式化过程中的精度控制
宽度,1个字符/数字(包括小数点)=1个宽度
mn必须为正数,用以控制宽度:
整数部分宽度为m-n-1,小数部分宽度为n,总共数宽度为m-1(纯数字不含小数点),数位宽度为m(含小数点)
n,控制小数点的精度,会进行小数的四舍五入,多了后补0
m-n-1,控制整数部分宽度,多了补空格,少了则无效(即为实际整数长度)
顺序是先n运行后m运行,先检查小数n长度,再检查整体m长度,(实际检查整数m-n-1长度)
%5d,将数字的宽度控制在5位,如数字11被设置为5d(本身宽为2),就会变成[空格][空格][空格]11,三个数字补齐宽度
%.2f,小数点精度设置为2,如11,345被设置为%7.2f,有[空格][空格]11.35
"""
"""
快速思考%m-n-1.nf == %5.2f
必须满足小数部分长度为n=2,多了则补0,少了则四舍五入
然后小数处理完后,处理整数长度,整数长度应该非严格按照m-n-1定义大小,少了失效,多了补前导0
"""
data = 10
print(data, "%2d" % data, "%2.1f" % data)
data += 0.15 # data==10.15 , 本身宽度为5(整数2小数2小数点1)
print("%5.2f" % data) # m-n-1=2为整数部分长度,刚好合适
print("%5.1f" % data) # m-n-1=3为整数部分长度,补1个空格
print("%8.3f" % data) # m-n-1=4为整数部分长度,补2个空格,n=3为小数部分长度,补1个后0
模板语法(与占位同理,但是不需要声名数据类型)
"""
"字面量"是写死的,其中可以用占位符插入变量的值
当然也可以:f{}格式化:原原本本输出变量值,不限制数据类型,并且不作数据精度控制
f " 字面量 {变量} 字面量 "
"""
pos="四川"
print(f"我在{pos}钓鱼玩")
"""
用表达式来格式化,减少变量的声明来作为数据的载体,而是直接将表达式放置占位符或模板中,直接输出结果
表达式:一条具有明确执行结果的代码语句:n=1+2,等号右边就是表达式(1+2),或者有返回值的函数如type等
在无需使用变量对表达式结果进行数据存储时,不用使用变量承接表达式,而是直接格式化表达式
print("%d"%(表达式))
print(f"{表达式}")
"""
print("1*5的结果是:%d"%(1*5))
print(f"2025+860的结果是:{2025+860}")
print("'电子科大'在python中的数据类型是:%s"%type('电子科大'))
#如果不知道数据类型来%占位,比如未知函数的返回值类型,就用模板语法{},不需要说明是什么变量类型
print(f"'电子科大'在python中的数据类型是:{type('电子科大')}")
同时输入输出input()及input(“…”)
"""
input语句获取键盘的输入数据,引发中断,并且以返回值形式保留其接收到的数据
并且input可以直接输出参数:input("参数"),通常用作提示
所以其可以输入输出
"""
print("please tell me what is ur name?")#常规输出,不附带输入
iname = input()#无参,仅用作输入,无输出
print(f"ok,u name is {iname}")
wschool=input("which university is ur postgraduate school?")#有输出有输入,先输出参数,然后中断接收数据
what = input(f"in {wschool},you can... ")
print(f"\"{what}?\""+",that's good!")