基础

解释型和编译型的区别

编译型:编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器可识别的二进制文件语言,以后执行这个程序的时候,就不用再进行翻译了,直接使用编译结果就可以了。

优点:运行速度快。

缺点:开发效率低,调试麻烦,不可以跨平台。

解释型:在运行的时候将程序一行行的翻译成机器可识别的二进制语言。每执行一次程序就要逐行翻译翻译一次。

优点:开发效率高,调试代码方便,并可以跨平台。

缺点:运行速度慢

Python先把代码编译成字节码,在对字节码解释执行。字节码在python虚拟机程序里对应的是PyCodeObject对象,pyc文件是字节码在磁盘上的表现形式。

 

在Python中,.pyc 文件是 Python 解释器生成的字节码文件。当 Python 程序执行时,解释器首先会将源代码(.py 文件)转换为字节码(.pyc 文件),然后再执行字节码。

字节码是一种中间形式的代码,它比源代码更接近机器代码,但仍然是与特定的 Python 解释器相关的。生成字节码文件的过程被称为编译,这使得 Python 程序的执行速度比直接解释源代码要快。

.pyc 文件通常是在第一次执行 Python 程序时自动生成的,或者在源代码文件被修改后重新生成。当下次运行程序时,解释器会首先检查 .pyc 文件的时间戳以确定是否需要重新编译。

.pyc 文件在执行过程中起到了缓存的作用,它可以减少重复的编译时间并提高程序的启动速度。同时,由于 .pyc 文件是已编译的形式,因此也可以在没有源代码的情况下执行程序。

需要注意的是,.pyc 文件通常与特定版本的 Python 解释器相关,不同的 Python 解释器可能生成不兼容的 .pyc 文件。因此,在不同版本的 Python 之间共享 .pyc 文件可能会导致错误或不可预测的行为。

 

 

 

 

 

 

变量

将中间程序运行结果存储下来,以便后边的程序随时调用。

变量名命名的规则

1.数字字母下划线的任意组合。

2.数字不能放在变量名的开头。

3.变量名中间不能有空格。

4.不能是Python中的关键字。

5.命名要有可描述性。python推荐两种变量名字体:1驼峰体:AgeOfOldBoy=56  2下划线:age_of_old_boy=56

6.不要用汉语,拼音,太长的命名。

注释

#注释单行

多行注释:'''背注释内容'''  ,"""被注释内容"""  

数据类型

python支持一下数据类型

整数(int):用于表示整数值,例如 42。

浮点数(float):用于表示带有小数部分的数值,例如 3.14。

字符串(str):用于表示文本数据,例如 'Hello, World'。

布尔值(bool):表示真(True)或假(False)的逻辑值。

列表(list):有序的可变序列,可以包含多个元素,例如 [1, 2, 3]。

元组(tuple):有序的不可变序列,类似于列表,但一旦创建就无法修改,例如 (1, 2, 3)。

集合(set):无序的可变集合,用于存储唯一的元素,例如 {1, 2, 3}。

字典(dict):键值对的集合,用于存储映射关系,例如 {'name': 'Alice', 'age': 30}。

字节串(bytes):用于表示二进制数据,例如 b'\x01\x02\x03'。

字节数组(bytearray):类似于字节串,但是可变的。

复数(complex):用于表示复数,例如 3 + 4j。

空值(NoneType):表示空值或缺失值,通常使用 None 表示。

 

字符串

(str):在Python中用一组引号括起来的都是字符串,input输入的内容也是字符串。注意他和tuple的区别字符串是用一组引号组成,而元组使用多组引号组成,并且中间用逗号(,)隔开。而元组是一个集合。

字符串只有加和乘两种方法,字符串拼接时注意:遇到数字要把数字转化为字符串才能进行拼接。

注意:input出来的数据类型都是字符串

格式化输出的方式

 第一种方法:用%占位符

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)
View Code

 

%是占位符  %s表示字符串 %d表示数字(digit)

占位符补充知识:

mss="我叫%s,今年%d岁,我学习进度为10%%"%("zhangshouye",12)#10%后边需要再加一个%,如果没有就会报错。

print(mss)

 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)
View Code

结果

 1 请输入您的名字小红
 2 请输入您的年龄23
 3 请输入您的工作IT
 4 请输入您的爱好男人
 5 
 6 --------info of 小红----
 7 Name:小红
 8 Age:23
 9 Job:IT
10 Hobbies:男人
11 -----------end------------
View Code

第二种方法:用函数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

 语法

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

 

\r和\n

\r是回车

\n是换行,在linux中\n表示换行在window中\r\n表示换行

\r除了表示回车外,还有一个默认在原位置进行输出

下边是一个进度条的例子

import time


for i in range(22, 0, -1):
    print('现在是:\r%d' % i,end='') #end='' 默认为换行符\n ,修改为空不换行
    time.sleep(1) # 暂停1秒

end=

end 是print的一个参数,我们如果这样

print('你好“)
print('中国’)

它会换行其实是print中的end=“\n”.

如果我们修改一下就不会换行了

print("你好",end='')
print("中国")

结果:

你好中国

 

 

 

posted on 2017-10-19 18:23  程序员一学徒  阅读(265)  评论(0编辑  收藏  举报