python是一门什么样的语言?
编译性和解释性 静态语言和动态语言 强类型定义和弱类型定义
从以上三个方面分析可以得出:Python是一们动态解释性的强类型定义语言。
1 优雅、明确、简单 2 开发效率高,拥有强大的第三方库 3 高级语言 4 可移植性 5 可扩展性 6 可嵌入性
1 速度慢,极高速度要求不能满足 2 代码不能加密,咬明文展示 3 线程不能利用多CPU问题,一个python的解释器进程内又一条主线程,禁止多线程的并行执行。 4 等等
解释器有:Cpython,IPython,PyPy,Jython,IronPython等
,其中使用最广泛的是CPython。如果要和Java平台交互,最好的办法是通过网络调用来交互,确保各个程序之间的独立性。
第一步下载: https://www.python.org/downloads/ 第二步安装: 可以选择安装路径,默认安装路径是C:\python39 第三步:环境变量配置 右击计算机-->属性-->高级系统设置-->高级tab下-->环境变量 --> 系统变量-->选择path-->编辑-->新建-->C:\python39--> 一路确定即可 第四步: 验证 win+R -->cmd-->python 可以出现如下表示安装以及配置环境变量成功 Python 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.
创建一个hello.py的文件
print("Hello World!")
进入cmd->执行python hello.py,运行可以看到Hello World!
name ="gavin" 上述代码声明了一个变量,变量名为: name,变量name的值为: "gavin"
1 变量名只能是字母、数字或下划线的任意组合 2 变量名的第一个字符不能是数字 3 以下关键字不能声明为变量名[and , 'as', 'assert , break', 'class', 'continue'; 'def , 'del , 'elif , 'else', 'except , 'exec', 'finally , "for , 'from','global', ' if , 'import , 'in', 'is' , 'lambda', 'not , 'or , 'pass', 'print , 'raise', 'return', 'try , while', 'with', 'yrield'] 4 不可以带空格,不能以$开头
1 变量名要做到见名知义 2 不要拿中文做变量名 3 变量名尽量不要写中文拼音 4 若变量名称过长,可以使用下划线分割,例如:gavin_birthday 5 简写的名字大写
驼峰体:NumberOfStudents 下划线:number_of_students(官方推荐)
在python中,没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。
PI=3.1415926.....
当前行注释 :# 被注释的内容 多行注释: """被注释内容""" 多行注释中,可以使用三个单引号对或者使用三个双引号对 若对多行注释进行变量赋值,则可以对多行注释可以进行打印 单引号和双引号的使用需要间隔开。
python2种默认不支持中文字符集 如果需要使用中文,则需要在.py文件中加上 # -*coding:utf-8 -*- 在python3中则可以直接使用中文
默认输入的内容是字符串类型的 job = input("please input your job:") print("your job is ",job) 可以使用print(type(job))来检验 结果是:<class 'str'>
如果要输入一个整数类型的数据
则可以通过int()函数进行限制
# 字符串转化为数字 test = int(input("输入一个整数")) print(type(test)) # 整形转化为字符串 print(type(str(test)))
方式一:通过占位符
info = ''' %s Info name:%s age:%s sex:%s ''' %(name,name,age,sex) print(info) # %s s 代表字符串 # %d d 代表整数 # %f f 代表浮点数
方式二:通过{name},{age}....的方式对应参数
info2 = ''' {name} Info name:{name} age:{age} sex:{sex} '''.format(name=name ,age=age, sex=sex) print(info2)
方式三:通过{0},{1}....的方式对应参数
info3 = ''' -------- info of {0} ----- Name:{0} age:{1} sex:{2} '''.format(name,age,sex) print(info3)
方式四:通过字符串的拼接符号“+”进行拼接
name="gavin" print("my name is "+name) #这种拼接的方式效率低下,不建议多次拼接使用
模块导入,密码输入为密文,而不是明文
#导入模块 import getpass username = input("username:") #password = input("password") password = getpass.getpass("password:") print(username,password)
语法
if 判断条件: 执行语句…… else: 执行语句…… 或者: if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
案例
#设定用户名和密码 _username = "gavin" _password = "1234" #输入用户名和密码 username = input("username :") password = input("password :") if username==_username: if password==_password: print("login in successful") else: print("password is error ,please input again") else: print("username is error ,please input again")
语法
while 判断条件(condition): 执行语句(statements)……
案例
# Author :liqiang # 猜测年龄,多次猜测 age_of_gavin = 25 count = 0;#次数 while True: guess_age = int(input("guess age:")) count+=1; if count<3: if guess_age == age_of_gavin: print('''你猜对了,真棒! 使用了 {count} 次'''.format(count=count)) break elif guess_age > age_of_gavin: print("你猜大啦,再小点") else: print("你猜小啦,再大点") else: print('''{count}次机会用完'''.format(count=count)) break
方式二:循环使用 else 语句
age_of_oldboy = 56 count = 0 while count <3: guess_age = int(input("guess age:") ) if guess_age == age_of_oldboy : print("yes, you got it. ") break elif guess_age > age_of_oldboy: print("think smaller...") else: print("think bigger!") count +=1 else: print("you have tried too many times..fuck off")
语法
for iterating_var in sequence: statements(s) for i in range(0,10,2): print(i) 其中: 打印的数据包括0,但是不包括10 ,2代表步长,i就相当于索引
案例
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
# Author :liqiang # 猜测年龄,多次猜测 age_of_gavin = 25 count = 0;#次数 for i in range(3): guess_age = int(input("guess age:")) if guess_age == age_of_gavin: print('''你猜对了,真棒! 使用了 {count} 次'''.format(count=i+1)) break elif guess_age > age_of_gavin: print("你猜大啦,再小点") else: print("你猜小啦,再大点") else: print('''{count}次机会用完,没有猜对噢'''.format(count=count+1))
fruits = ['香蕉', '苹果', '梨子','葡萄'] for index in range(len(fruits)): print ('当前水果 : %s' % fruits[index]) print('''当前水果是 : {kind}'''.format(kind=fruits[index]))
Python for的嵌套循环语法
for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s)
Python while的嵌套循环语法
while expression: while expression: statement(s) statement(s)
注意:可以在for循环中嵌入while循环,反之也可以在while循环中嵌入for循环
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。 break语句用在while和for循环中。 如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
continue 语句跳出本次循环,而break跳出整个循环。 continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。 continue语句用在while和for循环中。
注意:可以通过断点调试的方式进行演示,方便观察数据的变化。
import sys print(sys.path)#打印环境变量 #导入模块时,先在当前目录进行查找,再到site-package查找, #再去全局环境变量查找,如果都没有导入的模块名称,则报错 print(sys.argv)#打印脚本相对路径 print(sys.argv[2])#获取用户传入的第三个参数
import os os.system("dir")#执行命令不保存结果 cmd_res=os.popen("dir").read()#执行命令后可以保存结果 os.mkdir("test_dir")#创建目录
Python是一门先编译后解释的语言,执行时先查找pyc文件,存在直接调用,
不存在则将编译结果保存到内存中,程序运行结束后,保存到pyc文件中
数字类型
```python
整型、长整型、浮点型、complex复数
长整型:Python的长整型没有指定位宽,但也不是无限大
科学计数法:50000=5E4=5*10**4
```
布尔值
1或者0 True或者False
字符串
name = "gavin"
bytes数据类型
编码转换(string<-->bytes) encode('utf-8')编码成2进制,编码之前为utf-8 decode('utf-8')用utf-8解码 for example: 编码:'aa'.encode('utf-8') b'\xe2\....' 解码:b'\xe2\....'.decode('utf-8') 'aa'