目录
一、第一个python程序
二、基本语法,数据类型,字面量,循环语句等内容
2.1字面量
2.2注释
2.2.1单行注释
2.2.2多行注释
2.3变量
2.3.1认识变量
2.3.2查看数据类型
2.3.3数据类型转换
2.3.4字符串的三种定义方式
2.3.5字符串的拼接
拼接方式1:使用加号
拼接方式2:使用百分号
占位符类型:
2.4:input语句
2.5布尔类型和比较运算
2.6:判断语句
2.6.1:if-else语句基本格式:
2.6.2 if elif else多条件判断
2.6.3判断语句的嵌套
2.7循环语句的应用
2.7.1while循环
2.7.2:for循环
案例1:遍历字符串:
案例2:range语句
用法1:range(num)
用法2:range(num1,num2)
用法3:range(num1,num2,num3)
用法4:for循环打印99乘法表
三、函数
3.1函数初体验
3.2函数的定义
3.2.1函数定义与调用
3.2.2函数的传入参数
3.2.3函数的返回值
3.2.4函数返回值为None类型
四、容器相关
4.1列表的定义,输出方式
4.2输出某一个具体的列表元素
4.2.1输出嵌套列表的元素
4.2.2列表在指定下标处插入元素
4.2.3列表末尾插入元素
4.2.4删除指定位置的元素
4.2.5遍历列表的操作
4.3元组
五、python面向对象相关
5.1初识对象和类
5.2类的定义和使用
5.2.1支持参数传入的方式
5.2.2构造方法
一、第一个python程序
在控制台上面输出“你好 python”。
在venv目录下面,新建一个Main1.python的文件夹。
然后在文件当中使用print函数输出一句命令即可。

然后,在Main.py下面,右键一下,运行Main1.py:即可看到下方控制台输出的内容了。

二、基本语法,数据类型,字面量,循环语句等内容
2.1字面量
在代码当中,被写下来的固定的值,称之为字面量。也就类似于我们在Java/C/C++程序当中的定义方式:int a=2;float b=2.5这种类型。此外,python当中还有字符串等字面量。这一类数据类型类似于Java当中的String str="123"。
输出常量:
print("你好 python")
print(6666)
print(13.14) 
然后,查看控制台的内容:

2.2注释
2.2.1单行注释
#和注释的内容一般以一个空格来隔开。
例如如下代码:这一句是一个单行注释。
# 输出你好python
print("你好 python") 
2.2.2多行注释
以一对三个引号引起来的内容就是多行注释:
"""
这是多行注释的方式
"""
print(6666)
print(13.14) 
2.3变量
2.3.1认识变量
在程序运行的时候,能存储计算结果或能表示值的抽象概念。
简单的说,就是在程序运行的时候,记录数据用的。
变量的定义方式:变量名称=变量的值
#定义一个变量
money=50 
输出一个变量:如果想拼接字符串,在python当中需要通过逗号来拼接上的。
print(内容1,内容2,内容3......)

变量的加减乘除:

查看新的值:

2.3.2查看数据类型
将会使用到一个函数:type函数。返回值是数据类型
string_type=type("黑马程序员")
print(string_type)
int_type=type(123)
print(int_type) 
运行结果:

2.3.3数据类型转换
对于某一数据类型,转化为特定的类型。
#字符串转整数
number=int("1238")
print(number,type(number))
#整数转字符串
str=str("9876")
print(str,type(str)) 
运行结果

2.3.4字符串的三种定义方式
单引号定义法 name='你好'
双引号定义法 name="你好哈哈哈"
三引号定义法 name="""哈哈哈"""
name="张三"
print(name,type(name))
name='李四'
print(name,type(name))
name='王五'
print(name,type(name))
name="""哈哈哈"""
print(name,type(name)) 
查看运行结果:

2.3.5字符串的拼接
拼接方式1:使用加号
字符串的拼接,一般是使用“+”号来进行拼接,例如:
name="我是小明"
print(name+"的爸爸") 
那么,输出的内容将会是如下部分:

拼接方式2:使用百分号
name="黑马程序员"
message="学IT就来 %s"%name
print(message) 
其中的,%s
% 表示:我要占位。
s表示:将变量变成字符串放入占位的地方。
name="小明"
age=13
print("大家好,我是:%s,我今年%s岁了"%(name,age)) 
运行结果如下:

占位符类型:
除了有%s可以占位字符串类型以外,还有%d,%f等占位符,分别代替整数,浮点数。

name="小明"
age=13
print("大家好,我是:%s,我今年%d岁了"%(name,age))
 
2.4:input语句
input函数和Java当中的Scanner函数,C语言当中的Scanf函数类似,可以把字面量/变量等输入到屏幕上面。input()将是获取键盘输入的函数。
print("请告诉我你是谁?")
name=input();
print("我是:",name) 

2.5布尔类型和比较运算
布尔类型有两种取值,一种是true(真),另一种是false(假)。
定义变量存储布尔类型数据:变量名称=布尔类型字面量。
一般,是通过表达式计算结果:10>9:True。10>11:False。
num1=10
num2=5
print("10>5的结果是:",num1>num2)
print("10<5的结果是:",num1<num2)
print(f"num1>=num2的结果是:{num1>=num2}")
 
如下结果:

2.6:判断语句
2.6.1:if-else语句基本格式:
if 要判断的条件:
条件成立时,要做的事情
else :
条件不成立的时候,要做的事情
注意此处的if,else语句不需要大括号
示例代码:
age=30
if age>=18:
        print("我已经成年了")
        print("哈哈哈")
else :
    print("我还没有成年")
    print("哈哈哈哈哈哈哈哈哈") 
运行结果:

2.6.2 if elif else多条件判断
判断的基本格式:
if 条件1:
满足条件1应该做的事情
elif 条件2:
满足条件2应该做的事情
elif 条件N:
满足条件N应该做的事情
else:
所有条件都不满足应该做的事情
代码案例:
age=10
if age>=20:
     print("您已经超岁数了")
elif age>=10&age<20:
     print("您刚刚好符合")
else:
     print("不符合") 
运行结果:

2.6.3判断语句的嵌套
基本格式:
if 条件1:
满足条件1 做的事情1
满足条件2 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
每一个if语句对应的else语句都是齐头并进的
age=3
if age>=5:
    if age==10:
        print("您的年龄是10")
    else:
        print("您的年龄在5-10之间")
else:
    print("您的年龄小于5") 
2.7循环语句的应用
2.7.1while循环
while循环的基本语法:
while 条件:
满足条件的时候,做的事情1
满足条件的时候,做的事情2
满足条件的时候,做的事情3
代码示例:
i=1
while i<=100:
    print("这是第 %d"%i+"行代码")
    i+=1 
运行结果:

while循环求和1-100代码案例:
i=1
sum=0
while i<=100:
    print("sum=%d"%sum,"i=%d"%i)
    sum=sum+i;
    i+=1;
print("1到100的和是:%d"%sum) 
如下所示:

2.7.2:for循环
程序当中的for循环:
for 临时变量 in 待处理的数据集:
   循环满足条件时候执行的代码。 
案例1:遍历字符串:
name="JIM"
for x in name:
    #将name的内容挨个取出,赋予临时变量x
    #就可以在循环体内对x进行处理
    print(x) 
运行结果:

案例2:range语句
range表示一个序列,一般有两种用法:
用法1:range(num)
这表示num为一个序列:从0开始,比num小1。
for x in range(10):
    print(x) 
运行结果:

用法2:range(num1,num2)
含义:输出[num1,num2)的所有内容
for x in range(10,20):
    print(x) 
运行结果如下:

用法3:range(num1,num2,num3)
从num1开始,到num2结束。期间的步长为num3:
输出的范围是[num1,num2),期间的步长为num3:
for x in range(10,20,2):
    print(x) 
输出内容如下:

用法4:for循环打印99乘法表
for i in range(1,10):
    #通过内层循环控制每一行的输出
    for j in range(1,i+1):
        #在内层循环当中输出每一行的内容
        print(f"{j}*{i}={j*i}\t")
    #外层循环可以通过print输出一个空行
    print() 
运行结果:

三、函数
3.1函数初体验
python当中的函数和Java/C/C++当中的函数类似。下面来一个函数体验一下:
通常采用def 关键字来定义一个函数,基本的格式是:
def 函数名称(参数):
//下面的内容是函数体,需要和def对齐;
def my_len(data):
    count=0
    for i in data:
        count+=1
        
    print(f"字符串data的长度是{count}")
    print("hello")
my_len("123456")
my_len("werdfddsa") 
运行结果:

3.2函数的定义
3.2.1函数定义与调用
def 函数名称(传入参数):
  函数体
  return 返回值......可有可无。 
函数定义好之后,需要一个工具去调用它:
#使用def关键字定义一个函数
def sayHi():
    print("你好呀哈哈哈")
  
#调用这个函数  
sayHi() 
3.2.2函数的传入参数
#括号内部是参数列表
def add(x,y):
    result=x+y
    print(f"{x}+{y}的值是{result}")
#传入2和3用来调用
add(2,3) 
运行结果:

3.2.3函数的返回值
代码示例:
#定义函数,定义参数
def add(a,b):
    result=a+b
    #返回一个具体的值
    return result
r=add(2,3)
#输出这个值
print(r) 
3.2.4函数返回值为None类型
python中有一个特殊的字面量:None类型。当一个函数无返回值的时候,也就是没有return语句的时候,返回的类型就是<class 'NoneType'>
无返回值的函数,实际上就是返回了None这个字面量。
#定义函数,定义参数
def add(a,b):
    result=a+b
    #返回一个具体的值
r=add(2,3)
#输出这个值
print(r)
#类型为None
print(type(r)) 
运行结果:

四、容器相关
4.1列表的定义,输出方式
代码示例:
name_list=['123','456','789']
print(name_list)
print(type(name_list)) 
运行结果:

4.2输出某一个具体的列表元素
##
my_list=["Tom","Lily","Rose"]
print(my_list[0])
print(my_list[1])
print(my_list[2]) 
这个时候,点击运行就可以看到结果了:

4.2.1输出嵌套列表的元素
my_list=[[1,2,3],[4,5,6]]
#取的是1号下标元素的2号元素
print(my_list[1][2]) 
这样的情况下,去到的元素就是6.
4.2.2列表在指定下标处插入元素
my_list=[1,2,3]
#在1号下标处插入元素9
my_list.insert(1,9)
print(my_list) 
运行结果:

4.2.3列表末尾插入元素
my_list=[1,2,3]
#在1号下标处插入元素9
my_list.append(4)
print(my_list) 
运行结果:

4.2.4删除指定位置的元素
my_list=[1,2,3]
#删除2号下标的元素
del my_list[2]
print(my_list) 
运行结果:

还有其他一些操作,详情见python说明文档
4.2.5遍历列表的操作
index=0
my_list=[1,2,3]
#下标小于元组的元素数量
while index<len(my_list):
    #取出来对应的元素
    element=my_list[index]
    #输出这个元素
    print(element)
    #下标+1,下标依次+1
    index+=1 
运行结果:

4.3元组
元组一旦定义完成,就不可以修改。它和列表的最大区别就在于:元组被定义好之后是不可变的,而列表是可变的。元组仍然有列表的一系列方法。
下面仅仅演示定义,遍历的方法:
t7=(1,6,10,5,9)
for i in t7:
    print(i)
print(len(t7)) 
运行结果:

五、python面向对象相关
5.1初识对象和类
python当中的类其实就可以理解为实际生活当中我们认识的一个实体。一张数据库表:Student可能有以下几个属性:(姓名,性别,国籍,籍贯,年龄)......
这就好比:一个class Student里面可能有下面几个属性:(姓名,性别,国籍,籍贯,年龄)
class Student:
    name=None  #姓名
    gender=None #性别
    nationality=None #国籍
    native_place=None #籍贯
    age=None #年龄
#创建一个对象
stu_1=Student()
#为这个对象赋值
stu_1.name="王佳鑫"
stu_1.gender="男"
stu_1.nationality="中国"
stu_1.native_place="广东省"
stu_1.age=22
##输出内容
print(stu_1.name)
print(stu_1.gender)
print(stu_1.nationality)
print(stu_1.native_place)
print(stu_1.age) 
运行结果:

5.2类的定义和使用
在5.1当中,实现了为一个类的属性赋值的方式。
下面,将重点谈一下如何定义一个类的行为,也就是在类的内部定义方法:
基本代码格式:
在上述代码当中,say_Hi方法就是定义在student类内部的方法。self无论如何都要作为一个参数传入。
class Student:
    name=None  #学生的姓名
    age=None   #学生的年龄
    #成员方法的参数列表一定要包含self
    def say_Hi(self):
        print(f"Hi大家好,我是{self.name}")
stu=Student()
stu.name="王佳鑫"
stu.say_Hi() 
运行结果:

此外,还可以创建多个对象:
class Student:
    name=None  #学生的姓名
    age=None   #学生的年龄
    #成员方法的参数列表一定要包含self
    def say_Hi(self):
        print(f"Hi大家好,我是{self.name}")
#创建其中一个对象
stu=Student()
stu.name="王佳鑫"
stu.say_Hi()
#创建另一个对象
stu1=Student()
stu1.name="李小明"
stu1.say_Hi()
 
运行:

5.2.1支持参数传入的方式
代码案例:
class Student:
    name=None  #学生的姓名
    age=None   #学生的年龄
    #成员方法的参数列表一定要包含self
    def say_Hi(self):
        print(f"Hi大家好,我是{self.name}")
    def say_Hi2(self,mes):
        print(f"大家好,我的名字是{mes}")
#创建其中一个对象
stu=Student()
stu.name="王佳鑫"
stu.say_Hi()
#创建另一个对象
stu1=Student()
stu1.say_Hi2("李小明") 
运行结果:

5.2.2构造方法
构造方法一定是这样的格式:
def  两个下划线+init+两个下划线(self,args...): 
如下所示:
class Student:
    name=None
    age=None
    tel=None
    def __init__(self,name,age,tel):
        self.name=name
        self.age=age
        self.tel=tel
        print("Student类创建了一个类对象了")
stu=Student("123",14,121212121)
print(stu.name)
print(stu.age)
print(stu.tel) 
运行结果:




















