Python入门——语言基础
一、标准输入和输出
1、标准输入(注意:input ( ) 得到的数据是字符串数据,若需要利用其中的数字,则需要用 int 转化数据类型为整数)
# 格式:变量名=intput('提示内容')
inputdata = input("please input your data")
2、标准输出(注意:可以通过改变 sep 和 end 的字符内容来改变输出的间隔和结束符)
# 格式:print(value(值),...,sep='(分隔字符)',end='(结束字符)',file=sys.stdout,flush=False)
print(inputdata,sep="**",end="\n")
二、变量和常量
1、变量没有数据类型,可以动态变化。(与C语言的主要区别)
2、变量的命名规则:
(1)变量名只能由字母、数字和下划线(_)构成,而且不能以数字开头;
(2)严格区分大小写,支持中文但是没必要(尽量不要使用中文);
(3)不能使用 Python 保留的字符名:and、as、assert、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、not、or、pass、print、raise、return、try、while、with、yield。
3、推荐使用的定义方式
(1)大驼峰体命名法:变量名的每个单词的首字母均大写,如 TrainData,TestData等;
(2)小驼峰体命名法:第一个单词的首字母小写,后面每个单词的首字母大写,其余字母小写,如 trainData,testData等;
(3)下划线命名法:每个单词均为小写,单词之间用下划线连接,如 train_data,test_data等。
4、变量的存储方式
关键是理解 id(即地址)的正确意思(与C语言不同)
(1) 执行代码 a = b 后,a与b的地址(id)是相同的;当执行代码 a = 4 后,a的地址发生改变,而b的地址没有改变。
b = 3
a = b
a = 4
print(b) # b = 3
(2) 执行代码 a = b 后,a与b的地址(id)是相同的;当执行代码 a[0] = 1 后,a的地址没有发生改变,b的地址也没有改变,所以b[0]也会改变。
b= [10,20,30]
a = b
a[0] = 1
print(b) # b = [1,20,30]
5、常量
(1)定义方法:变量名(全大写) = 常数。
(2)常量也称为次变量,所以常量的值是可以改变的,在后续程序中可以再次赋值。
三、运算符
1、算术运算符
(1)+、-、*、% 的运算方式与C语言一致;
(2)/ 运算:除法运算,得到的结果是浮点数;
(3)** 运算:a**b=c 指数运算。特殊情况:当 b=0.5 时,就是求开方;
(4)// 运算:地板除运算(向下取整)。如 10 // 3 = 3,-10 // 3 = -4;
注意:
(i) Python 中不支持自增和自减运算符;
(ii)字符串只支持算术运算符中的加法和乘法运算(只能是数乘)。加法:连接两个字符串;乘法:重复字符串。
2、赋值运算符(左边不能是常量或表达式)
(1)常见赋值运算符(结合对应的算术运算符理解):=、+=、-=、*=、/=、//=、**=、%=
(2)特殊的赋值:
# (1)连等赋值
l = x = y = 1216
# (2)拆包
l,x,y = 12,16,"1216"
# (3)可变长度*
*l,x,y = 1,2,3,4,5,6,7,8 # 此时l=[1,2,3,4,5,6,],x=7,y=8
l,*x,y = 1,2,3,4,5,6,7,8 # 此时l=1,x=[2,3,4,5,6,7],y = 8
3、关系运算符:==、>=、<=、>、<、!=
(1)字符串之间使用关系运算符比较时,会根据各个字符的编码值逐一进行比较;
(2)数字与字符串之间,做 == 运算结果为 False ,做 != 运算结果为 True,不支持其他关系运算符。
4、逻辑运算符:and、or、not
(1)逻辑运算符的短路:
(i) 与(and):当前面一个判断结果为 False 时,后一个表达式就不进行了
(ii)或(or):当前面一个判断结果为 True 时,后一个表达式就不进行了
(2)逻辑与运算符做取值时,取第一个 False 值,若所以运算均为 True 则取最后一个值
print( 3 and 0 and 'hello') # 0
print( 2 and 'hello' and 100) # 100
(3)逻辑或运算符做取值时,取第一个 True 值,若所以运算均为 False 则取最后一个值
print( 0 and () and 100 and [] ) # 100
print( 0 and () and () and [] ) # []
5、位运算符
(1)&运算:将两个数的二进制逐位进行与运算(同时为1才是1)
(2)| 运算:将两个数的二进制逐位进行或运算(一个为1就是1)
(3)^ 运算:将两个数的二进制逐位进行异或运算(相同为0,不同为1)
(4)<<运算:将一个数的二进制左移,用0补齐尾部。如 a << n = a*(2^n)
(5)>>运算:将一个数的二进制右移。如 a >> n = a/(2^n) (注意:这可能会导致丢失精度)
6、成员运算符
用于判断是否位于字符串、列表或元组中。有2种:in 、not in
print( 3 in [1,2,3,4]) # True
7、身份运算符
用于比较两个对象的内存地址。有2种:is、not is
四、选择结构
1、if 语句
if lxy == 1216:
print(lxy)
2、if-else语句
if lxy == 1216:
print(lxy)
else:
print(lxy*2)
3、if-elif-else语句
if lxy == 1216:
print(lxy)
elif lxy == 12:
print(lxy * 2)
else :
print("lxy")
三种语句用法均与C用法类似,但需要注意:(1) if +条件语句时,不能用括号括起来,而且要在每个 if 、 elif 和 else 后都要加上分号;(2) Python 中可以使用连续区间进行片段:0 <= x < 60 ;(3) pass 在 Python 中无意义,保证语句完整。若if 后无语句时,用pass占位;(4) 内部语句不能用 { } 来表示,而是通过相同的缩进表示。
4、三元表达式
a = 10
b = 20
x = a if a > b else b
print (x) # 20
五、循环结构
1、while语句
用法与C相似,但是要注意格式:
while (判断语句):
内部语句
2、for语句
与C语言有较大差别。格式:
for 变量 in 可迭代对象
内部语句
for i in range(1:10):
print(i)
for i in "lxy":
print(i)
for i in [1,2,1,6]:
print(i)
注意:(i)可迭代对象包括:(1)range (a,b) :包含范围是 a ~ (b-1)(顾前不顾后) (2)列表:[1,2,3,4,5,6] (3) 字符串:会把字符串拆分;
(ii)内置 range 方法 :range (a,b,c) (a是可迭代对象的首元素;b是尾元素(但是迭代时不包含);c是步长,可以省略)。
range (1,9,2) # 可迭代对象为 [1,3,5,7]
3、循环控制语句
有3个:break、continue、pass(break 和 continue用法与C一样
六、注释
1、单注释 :用 # 注释掉其后面的内容
2、多行注释 :用 ‘’’ ‘’’ 或 “”" “”" 注释掉内部内容
七、逻辑行
在两个物理行之间用 ’ \ ’ 连接
str = "I love \
you."
print (str) # I love you.