Python-01 基础语法
初识Python
python是一门什么样的语言?
编译性和解释性
静态语言和动态语言
强类型定义和弱类型定义
从以上三个方面分析可以得出:Python是一们动态解释性的强类型定义语言。
Python的优缺点
优点:
1 优雅、明确、简单
2 开发效率高,拥有强大的第三方库
3 高级语言
4 可移植性
5 可扩展性
6 可嵌入性
缺点:
1 速度慢,极高速度要求不能满足
2 代码不能加密,咬明文展示
3 线程不能利用多CPU问题,一个python的解释器进程内又一条主线程,禁止多线程的并行执行。
4 等等
Python解释器
解释器有:Cpython,IPython,PyPy,Jython,IronPython等
,其中使用最广泛的是CPython。如果要和Java平台交互,最好的办法是通过网络调用来交互,确保各个程序之间的独立性。
Python安装以及环境变量配置
第一步下载:
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.
第一个Python程序
创建一个hello.py的文件
print("Hello World!")
进入cmd->执行python hello.py,运行可以看到Hello World!
Python变量
变量的定义
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常量
在python中,没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。
PI=3.1415926.....
Python注释
当前行注释 :# 被注释的内容
多行注释: """被注释内容"""
多行注释中,可以使用三个单引号对或者使用三个双引号对
若对多行注释进行变量赋值,则可以对多行注释可以进行打印
单引号和双引号的使用需要间隔开。
Python2和Python3的主要区别
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循环)
语法
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循环)
语法
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循环)
语法
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))
通过序列索引迭代(for)
fruits = ['香蕉', '苹果', '梨子','葡萄']
for index in range(len(fruits)):
print ('当前水果 : %s' % fruits[index])
print('''当前水果是 : {kind}'''.format(kind=fruits[index]))
Python嵌套循环
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循环
Python之break与continue
break-终止循环语句
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
continue-跳出本次循环
continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
注意:可以通过断点调试的方式进行演示,方便观察数据的变化。
模块初识
1、sys模块
import sys
print(sys.path)#打印环境变量
#导入模块时,先在当前目录进行查找,再到site-package查找,
#再去全局环境变量查找,如果都没有导入的模块名称,则报错
print(sys.argv)#打印脚本相对路径
print(sys.argv[2])#获取用户传入的第三个参数
2、os模块
import os
os.system("dir")#执行命令不保存结果
cmd_res=os.popen("dir").read()#执行命令后可以保存结果
os.mkdir("test_dir")#创建目录
3、.py2c是个什么东东
Python是一门先编译后解释的语言,执行时先查找pyc文件,存在直接调用,
不存在则将编译结果保存到内存中,程序运行结束后,保存到pyc文件中
4、数据类型
数字类型
```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'