解释型和编译型的区别
编译型:编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器可识别的二进制文件语言,以后执行这个程序的时候,就不用再进行翻译了,直接使用编译结果就可以了。
优点:运行速度快。
缺点:开发效率低,调试麻烦,不可以跨平台。
解释型:在运行的时候将程序一行行的翻译成机器可识别的二进制语言。每执行一次程序就要逐行翻译翻译一次。
优点:开发效率高,调试代码方便,并可以跨平台。
缺点:运行速度慢
Python先把代码编译成字节码,在对字节码解释执行。字节码在python虚拟机程序里对应的是PyCodeObject对象,pyc文件是字节码在磁盘上的表现形式。
变量
将中间程序运行结果存储下来,以便后边的程序随时调用。
变量名命名的规则
1.数字字母下划线的任意组合。
2.数字不能放在变量名的开头。
3.变量名中间不能有空格。
4.不能是Python中的关键字。
5.命名要有可描述性。python推荐两种变量名字体:1驼峰体:AgeOfOldBoy=56 2下划线:age_of_old_boy=56
6.不要用汉语,拼音,太长的命名。
注释
#注释单行
多行注释:'''背注释内容''' ,"""被注释内容"""
数据类型
字符串:(str):在Python中用一组引号括起来的都是字符串,input输入的内容也是字符串。注意他和tuple的区别字符串是用一组引号组成,而元组使用多组引号组成,并且中间用逗号(,)隔开。而元组是一个集合。
字符串只有加和乘两种方法,字符串拼接时注意:遇到数字要把数字转化为字符串才能进行拼接。
注意:input出来的数据类型都是字符串
格式化输出的方式
第一种方法:用%占位符
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
username=input("please input your name:") age=int(input("plese input your age:")) job=input("please input your job:") hobbies=input("please input your hobbies:") msg=""" --------info of %s----- Name:%s Age:%d Job:%s Hobbies:%s """%(username,username,age,job,hobbies)#这个%要紧跟引号(""")。%后边这个括号必须有。括号内的参数要和msg中的参数一个对应。 print(msg)
%是占位符 %s表示字符串 %d表示数字(digit)
占位符补充知识:
mss="我叫%s,今年%d岁,我学习进度为10%%"%("zhangshouye",12)#10%后边需要再加一个%,如果没有就会报错。
print(mss)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 name=input("请输入您的名字") 2 age=int(input("请输入您的年龄")) 3 job=input("请输入您的工作") 4 hobbies=input("请输入您的爱好") 5 msg=""" 6 --------info of %s---- 7 Name:%s 8 Age:%d 9 Job:%s 10 Hobbies:%s 11 -----------end------------ 12 """%(name,name,age,job,hobbies) 注意字符串完后才写%。 13 print(msg)
结果
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 请输入您的名字小红 2 请输入您的年龄23 3 请输入您的工作IT 4 请输入您的爱好男人 5 6 --------info of 小红---- 7 Name:小红 8 Age:23 9 Job:IT 10 Hobbies:男人 11 -----------end------------
第二种方法:用函数str.format()来代替%,此函数可以快速处理字符串。注意用format在字符串中用{ }花括号
运用位置参数:
第一种含括号里不带数字
msg=""" -----info of {} name:{} age={} hobbies:{}""".format("alex","alex",13,"womon",) #不要忘记format前边的英文句号(.),format括号里的参数要和msg里面的参数一一对应也是参数位置 print(msg)
结果:
-----info of alex name:alex age=13 hobbies:womon
第二种花括号里带数字:可以重复使用,后边的按顺序排列,有重复的元素可以写一次。
msg="""
-----info of {0}----
age={1}
name:{0}
hobbies:{2}""".format("alex",13,"womon")
print(msg)
结果:
-----info of alex-----
age=13
name:alex
hobbies:womon
运用关键字:
msg="""
-----info of {Name}
name:{Name}
age={Age}
hobbies:{Hobbies}""".format(Name="alex",Hobbies="womon",Age=13,)#括号里的参数位置不用一一对应,但是关键字要一一对应不包括重复的关键字)
#format括号后跟的参数是有规定的:字符串中的参数要放在等号左边,如Name="alex",如果你这样"alex"= Name,就会报错,记住输入的内容赋给变量。
print(msg)
结果:
-----info of alex name:alex age=13 hobbies:womon
整数:(int)integar
布尔值:(bool)True 和False 注意首字母要大写
if
下面这个是比较有意思的实例:
username="zhangshouye" password=123456 i=1 k=1 while i <4: name=input("请输入用户名:") psd=int(input("请输入密码:")) if name==username and psd==password: print("登陆成功") break elif k<6: if 3-i>0: print("密码或用户名错误,您还有%d次登陆机会"%(3-i)) elif i==3: answer=input("您是否还想继续重新输入密码?yes or not") if answer=="yes": i=0 else: break i+=1 else: print("您已经没有了登陆次数") break k+=1
while循环用法
while结构: while 条件: 结果 while 条件: 结果 else: 结果
break
break:立即跳出当前所在的循环体,不会继续顺序运行循环体其他程序,但是可以继续执行循环体外的程序。如果有两个循环体时,只会跳出第一个循环体
范例:
1 print("1111") 2 while True: 3 print(11) 4 print("222") 5 break 6 print("333") 7 print(444)
结果:
1111 11 222 444
continue
continue:立即结束当次循环,继续下次循环。
范例:不执行count=7
count=0
while count<10:
count+=1
if count==7:
continue
print("编号")
print(count)
结果:
1 2 3 4 5 6 8 9 10
continue 语句是一个删除的效果,他的存在是为了删除满足循环条件下的某些不需要的成分:
注意遇到改变条件来结束循环体时,while会坚持运行完循环最后一句代码。看下边这个例子:
flag=True while flag: print("A") print("B") print("C") flag=False print("D")
结果为:
A
B
C
D
和
是回车
是换行,在linux中 表示换行在window中 表示换行
除了表示回车外,还有一个默认在原位置进行输出
下边是一个进度条的例子
import time for i in range(22, 0, -1): print('现在是: %d' % i,end='') #end='' 默认为换行符 ,修改为空不换行 time.sleep(1) # 暂停1秒
end=
end 是print的一个参数,我们如果这样
print('你好“) print('中国’)
它会换行其实是print中的end=“ ”.
如果我们修改一下就不会换行了
print("你好",end='') print("中国")
结果:
你好中国