Python学习笔记【01-基础语法】

第一章

输入输出print

print函数的作用是向目的地输出内容
内容可以是: 字符串,数字,表达式
目的地可以是:控制台,文件
print可以在控制台输出字符串

print("Hello World!")

输出数字

print(114514)

输出含有运算符的表达式

print(114000 + 514)

向文件输出,就是编写文件内容

fp = open("D:/Project/Python/study/day01/text.txt", "a+")# 第一个变量是文件路径,第二个变量表示续写文件
print("hello world", file = fp)
fp.close() #关闭文件

不换行输出

print("114","514")
print(114,"514")
print(114,514)
print("114514", end="") # 这种才是真正的不换行输出

转义字符

大多数编程语言会有一些特殊字符:回车,换行,制表符…,这些字符可以通过转义字符反斜杠在字符串中表示出来:\

在这里插入图片描述
换行符,可以让字符串多行输出

print("第一行\n第二行")

回车,回车和换行符不一样会,回车会让回车符之前的字符串不输出

print("hello\rworld")

制表符

print("hello\tworld")
print("helloooo\tworld")

一个制表符代表四个空格,但是制表符前面的字符数不是4的整数倍,制表符会补全空格,使字符总数变成4的整数倍
在这里插入图片描述
退格,退格会把退格字符前一个字符去掉

print("hello\bworld")

双引号、单引号、反斜杠

print("这是一个单引号\'")
print("这是一个双引号\"")
print("这是一个反斜杠\\")

在字符串之前写一个r可以让程序忽视转义字符,但是字符串最后的字符不能是单数个反斜杠

print(r"这是两个反斜杠\\") # 这是两个反斜杠\\
print(r"a\"a") # a\"a
print(r""") # 这个会报错

字符编码

chr()函数是Python中的一个内置函数,它接受一个整数参数,并返回对应的Unicode字符。
ord()函数是另一个Python中的内置函数,它接受一个Unicode字符作为参数,并返回对应的整数值。
chr()函数和ord()函数是互逆的,即ord(chr(x)) == x和chr(ord©) == c。它们可以在需要将整数和字符之间进行转换的情况下使用。请注意,chr()函数和ord()函数只适用于Unicode字符,而不适用于ASCII字符或其他字符集。

print(chr(23002)) # 姚
print(ord("姚")) #23002

标识符和保留字

我们给变量、函数、类、模块和其它对象起名名字叫标识符
在python中一些单词本赋予了特殊的含义,标识符不能使用这些特殊单词,这些单词就叫做保留字(关键字)

定义标识符的规则:
可以使用字母(大小写)、数字、下划线
不能以数字开头
不能是保留字
严格区分大小写

使用keyword库中的keyword变量即可查看有哪些保留字

import keyword
print(keyword.kwlist)

变量

变量由三部分组成,id,类型,值。id是该变量在内存中的唯一地址

定义变量: 变量名 = 值,python中定义变量不需要写变量的类型

name = "张三"

可以通过函数来获取变量的id和类型

print(id(name)) # 2644770188400
print(type(name)) # <class 'str'>

变量可以多次赋值

name = '张三'
print(name) # 张三
name = '李四'
print(name) # 李四

数据类型

整型 int 114514
浮点型 float 114.514
布尔型 bool True(代表真) ,False(代表假)
字符串类型 str “张三” ‘张三’

整形

整形 integer 简写为int 可以表示正整数、负整数和零
整数有不同的表达方式:
十进制->默认的进制
二进制->以0b开头
八进制->以0o开头
十六进制->以0x开头

a = 123 #123
b = 0b101010 #42
c = 0o177 #127
d = 0x1ae #430
print(a,b,c,d)

浮点型

浮点数由整数部分和小数部分组成
但浮点数存在不精确性

a = 1.1
b = 2.2
print(a + b) #3.3000000000000003

解决不精确的方法:导入decimal模块

from decimal import Decimal
print(Decimal('1.1') + Decimal('2.2')) # 3.3
# 主要这里的1.1和2.2是字符串类型

布尔类型

布尔类型只有两个值,一个是真:True,一个是假:False,可以在判断语句中使用
布尔类型数据可以转换成数字,Ture可转换为1,False可转换成0

bool1 = True;
bool2 = False;
print(bool1,type(bool1)) #True <class 'bool'>
print(bool2,type(bool2)) #False <class 'bool'>

字符串类型

字符串类型是非常常见的数据类型,它可以用单引号,双引号,三引号来表示
三引号就是三个单引号或者三个双引号,用三引号可表示多行字符串

str1 = '张三' # 单引号
str2 = "李四" # 双引号
str3 = r'''王五
        赵六''' # 三个单引号的三引号
str4 = """王五
        赵六""" # 三个双引号的三引号
print(str1,type(str1)) #张三 <class 'str'>
print(str2,type(str2)) #李四 <class 'str'>
print(str3,type(str3)) 
#王五
#        赵六 <class 'str'>
print(str4,type(str4))
#王五
#        赵六 <class 'str'>

数据类型转换

不同数据类型的数据可以相互转换
int数据可以由字符串或者float数据转换(使用int()函数)
float数据可以由int或者字符串数据转换(使用float()函数)
字符串数据也可以由int或者float类型数据转换(使用str()函数)
布尔类型数据也可以转换成int类型数据,True代表1,False代表0
在这里插入图片描述
int()

a = "1"
b = '-1'
c = 1.1
d = True
print(int(a),type(int(a)))# 1 <class 'int'>
print(int(b),type(int(b)))# -1 <class 'int'>
print(int(c),type(int(c)))# 1 <class 'int'>
print(int(d),type(int(d)))# 1 <class 'int'>

float()

a = 1
b = '-1'
c = "1.12"
print(float(a),type(float(a)))# 1.0 <class 'float'>
print(float(b),type(float(b)))# -1.0 <class 'float'>
print(float(c),type(float(c)))# 1.12 <class 'float'>

str()

a = 122
b = 1.11
c = True
print(str(a),type(str(a)))# 122 <class 'str'>
print(str(b),type(str(b)))# 1.11 <class 'str'>
print(str(c),type(str(c)))# True <class 'str'>

注释

注释即为嵌入在程序中的,对程序没有影响的,对代码有标注性意义的文本。(这是我给注释下的定义)
注释可分为单行注释和多行注释
单行注释用井号来表示"#"
python中没有多行注释,但是你可以写一个多行字符串,不给他添加变量来代替多行注释

# 单行注释
"""
多行注释
"""

还有一个特殊类型注释,中文编码声明注释,声明该文件的编码格式
注意:该行代码需要写在文件的第一行

# coding: gbk

第二章

input()函数

参数:在控制台的提示文字
作用:input函数数用于获取标准输入(通常是键盘)获取用户的输入,它的返回值就是用户的输入
返回值:input函数的返回值都是str类型,如果需要其他类型的数据,就使用类型转换函数进行转换

str = input("请输入一个字符串:"); # bianys
print(str,type(str)) #bianys <class 'str'>
str = input("请输入一个数字:"); # 2
print(str,type(str)) #2 <class 'str'>

可以看到,就算输入的是数字,返回的也是字符串类型的数据。

运算符

算术运算符

print(1+1) #加法运算符:+
print(1-1) #减法运算符:-
print(1*1) #乘法运算符:*
print(3/2) #除法运算符:/ 1.5
print(3//2) #整除运算符://,返回值向下取整 1
print(9//-4) # -3
print(-9//4) # -3
print(5 % 3) #取余运算符:%,余数 = 被除数 - 除数*商
print(-5 % 3) # 1
print(5 % -3) # -1
print(2**3) #幂运算符:**,该表达式表示2的三次方

赋值运算符

赋值运算符就是给变量赋值的,用直接赋值,链式赋值,参数赋值,解包赋值

直接赋值

a = 3
print(a)

链式赋值

a=b=c= 20
print(a,b,c) # 20 20 20

参数赋值

a=10
a+=5
print(a)# 15
a-=5
print(a)# 10
a*=5
print(a)# 50
a/=5
print(a)# 10.0
a//=5
print(a)# 2.0
a%=5
print(a)# 2.0

解包赋值,按照顺序赋值

a,b,c = 10,20,30 
print(a,b,c) # 10 20 30
a,b = b,a
print(a,b)# 20 10

比较运算符

比较运算符是一类给变量的大小、真假进行判断的运算符,返回布尔类型数据

a,b = 10,20
print(a>b)#False
print(a>=b)#False
print(a>=b)#False
print(a>=b)#False
print(a<=b)#True
print(a<b)#True
print(a==b)#False
print(a!=b)#True

== 和 is

判断变量是否同有两种方式,一种是==,另一种是is
== 是对变量的值进行比较
is 和 is not 是针对变量的地址,也就是id进行比较

a = 10
b = 10
print(a==b,id(a),id(b)) #True 140732815369288 140732815369288
print(a is b,id(a),id(b)) #True 140732815369288 140732815369288
a = [1,2,3]
b = [1,2,3]
print(a==b,id(a),id(b)) # True 2014458369216 2014460169280
print(a is b,id(a),id(b)) # False 2014458369216 2014460169280
print(a is not b,id(a),id(b)) # True 2014458369216 2014460169280

in 与 not in

in判断一个变量是否在另一个变量集合中,这个变量集合其实就是数组(字符串可当作字符数组)
in 与 not in 正好相反,判断一个变量是否不在另一个变量集合中

list = [1,2,3,4]#这是一个数组
print(1 in (1,2,3))#True
print(5 in list)#False
print(1 not in [1,2,3])#False
print(8 not in [1,2,3])#True

布尔运算符(逻辑运算符)

对布尔类型数据进行计算的运算符是布尔运算符,返回值也是布尔类型的值
都有and、or、not 分别对应着与、或、非,运算逻辑不多展示。

print(True and False) # False
print(True and True) # True
print(True or False) # True
print(False or False) # False

print(not True) # False
print(not False) # True

位运算符

python中的位运算符有 &(与)、|(或) 、<<(左移运算)、>>(右移运算)

print(4 & 3) # 按位相与:0
print(4 | 3) # 按位相或:7
print(129 << 1) # 4左移1位,逻辑左移:258
print(4 >> 1) # 8又移2位,逻辑右移:2
print(255 >> 2) # 逻辑右移:63

运算符的优先级

算数符的优先级
小括号>算术运算>位运算>比较运算符>布尔运算符>赋值运算符(=)
** > (*,/,//,%) > (+,-) > (<<,>>,&,|) > (>,<,==,>=,<=.is,is not,in) > (and,or,not) > (=)

 a = 2**2 * 3 + 1 > 1 << 4 and True
b = 2**2 * 3 + 1
c = 1 << 4
print(a)# False
print(b)# 13
print(c)# 16

第三章

在这里插入图片描述
程序的运行结构分为三种,顺序结构,选择结构,循环结构

顺序结构

顺序结构就是程序由上到下,由左到右依次执行。

print("开始把大象放入冰箱")
print("1-打开冰箱")
print("2-把大象放进冰箱")
print("3-关闭冰箱")
print("结束")
"""输出结果
开始把大象放入冰箱
1-打开冰箱
2-把大象放进冰箱
3-关闭冰箱
结束
"""

对象的布尔值

在python中,任何东西都是对象,所有的对象都有一个对应的布尔值,可以通过内置函数bool()来获取对象的布尔值
除了以下几个对象的布尔值是False,其他对象的布尔值都是True
False,0,0.0,“”,‘’,None,空列表[],list(),空元组(),tuple(),空字典{},disc(),空集合set()

# 以下输出返回值全是False
print(bool(False)) # False
print(bool(0)) # 零
print(bool(0.0))# 零点零
print(bool(""))# 空字符串
print(bool(None))# 空对象
print(bool([]))# 空列表
print(bool(list()))# 空列表
print(bool(()))# 空元组
print(bool(tuple()))# 空元组
print(bool({}))# 空字典
print(bool(dict()))# 空字典
print(bool(set()))# 空集合

单分支结构

介绍

单分支结构就是,如果满足某个条件,就做某件事

语法

if 布尔表达式:
缩进(一般是4格)要做的事
缩进(一般是4格)要做的事
缩进(一般是4格)要做的事

例如

money = 2000000
if money > 114514: #注意这里有个冒号
    print("土豪啊")

双分支结构

介绍

双分支结构就是,如果满足某个条件,就做某件事,否则就做另一件事

语法

if 布尔表达式:
缩进(一般是4格)要做的事
缩进(一般是4格)要做的事
缩进(一般是4格)要做的事
else:
缩进(一般是4格)另一件事
缩进(一般是4格)另一件事
缩进(一般是4格)另一件事

例如

height = 190;
if height >= 180:
    print("长得真高啊")
else:
    print("长的真低啊")

多分支结构

介绍

如果满足某个条件,就执行某件事,如果不满足,否则,如果满足另一个条件,就执行另一件事,否则…,最后所有条件都不满足,执行某一件事。

语法

if 布尔表达式1:
代码1
elif 布尔表达式2:
代码2
elif 布尔表达式3:
代码3
… …
else:
代码n

例如

if 100 <= score >= 90:
    print("真厉害,不愧是我的儿子")
elif score >= 80:
    print("这回考得不错")
elif score >= 70:
    print("正常发挥,还行")
elif score >= 60:
    print("这回考的不行,给你一个大比兜")
elif 0 <= score < 60:
    print("龟孙贼,来来来,看你能不能看到明天的太阳!")
else:
    print("这逼老师,瞎几把判的分吧")

嵌套分支

分支结构是可以嵌套的,分支结构里面也可以写分支结构

在这里插入图片描述
例如

money = int(input("消费金额:"))
haveCard = input("是否有会员卡(y/n):")
if haveCard == "y":
    if money >= 200:
        print("打8折,消费:", money * 0.8, "元")
    elif money >= 100:
        print("打9折,消费:", money * 0.9, "元")
    else:
        print("不打折,消费:", money, "元")
else:
    if money >= 100:
        print("打九五折,消费:", money * 0.95, "元")
    else:
        print("不打折,消费:", money, "元")

三元表达式

条件表达式是一个表达式,是表达式它返回的就是一个值
他会根据条件的不同返回两个不同的值

语法
值1 if 条件表达式 else 值2 # 如果布尔表达式为True,返回值1,否则返回值2

a = 10
b = 20
print("a>b" if a > b else "a<=b")

pass语句

pass代表空语句,当我们在一个地方必须要代码,否则会报错的时候,我们可以暂时用pass来代替

if True:
#这个地方必须写代码,否则会报错
else:
#这个地方必须写代码,否则会报错
# 这样就不会报错了
if True:
	pass
else:
	pass

内置函数range()

range返回一个range类型的对象,range对象可以通过list函数转换成一个数组
根据参数的不同返回的集合也不同
range(int a) # a代表返回从0到a-1的一个数组,每个数之间的间隔为1
range(int a,int b) # a代表返回从a到b-1的一个数组,每个数之间的间隔为1
range(int a, int b, int c) # a代表返回从a到b-1的一个数组,每个数之间的间隔为c

r = range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(r))
r = range(2, 10) # [2, 3, 4, 5, 6, 7, 8, 9]
print(list(r))
r = range(2, 7, 2) # [0, 2, 4, 6, 8]
print(3 in r) # False
print(4 in r) # True
print(5 not in r) # True

注意:range()函数返回的只是一个range类型的对象,并不是一个数组,因此在内存中占空间是比较小的,当使用list()函数将其转换成一个数组后,他才是一个真正的数组。

循环

py中循环分为两类,while循环和for-in循环
在这里插入图片描述

while循环

语法

while 条件表达式:
	循环体

示例1:依次输出0-10

a = 1
while a <= 10: # 当a>10的时候就会退出循环
    print(a)
    a += 1 # a自增1

示例2:1到100的偶数和

a = 1
result = 0;
while a <= 100:
    if a % 2 == 0:
        result += a
    a += 1
print(result)

for-in循环

for-in循环又称为遍历,把一个数组或者集合的对象都拿出来,做相关操作

语法

for 变量 in 可迭代的对象:
	循环体

执行图
在这里插入图片描述
示例

list = [1, 2, 4, 3, 4]
for item in list:
    print(item)

如果循环体不需要访问变量,则可以将变量改为下划线 _

# 说十次你好
for _ in range(10):
    print("你好")

练习:返回水仙花数(水仙花数,也被称为阿姆斯特朗数,是一个三位数,其各个数字的立方和等于它本身)

#方法一(单个循环)
for i in range(100,1000):
    bai = int(i / 100)
    shi = int((i / 10) % 10)
    ge = i % 10
    if bai**3 + shi**3 + ge**3 == i:
        print(i)
# 方法二(循环嵌套)
for i in range(1, 10):
    for j in range(0, 10):
        for k in range(0, 10):
            if i**3 + j**3 + k**3 == i*100 + j*10 + k*1:
                print(str(i)+str(j)+str(k))

练习:输出九九乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        if j == i:
            print(j, "*", i, "=", j * i)
        else:
            print(j, "*", i, "=", j * i, end="   ")

break

break是一个结束循环的语句。在循环过程中,如果发生某种情况,我们想立刻结束整个循环,我们可以使用break保留字

示例:当用户输入正确密码时,结束循环

i = 0
password = "114514"
while i < 3:
    i += 1
    pwd = input("请输入你的密码:")
    if pwd == password:
        print("密码正确")
        break
    else:
        print("密码错误")

continue

continue适用于结束当前的循环,直接开始下一个循环。continue通常和if语句一同使用

示例

moneys = [80,20,90,110,30,300]
for money in moneys:
    if money >= 100:
        print("打九折,消费:", money * 0.9)
        continue # 当金钱大于等于100时,打九折,然后处理下一个人的消费
    print("不打折,消费:", money)

和循环搭配之用的else

不同于其他语言,python中while循环、for循环可以和else搭配使用。
在循环结束后,如果整个循环没有被break打断,那么执行else语句中的代码

语法

while/for循环:
	循环语句
else:
	代码

示例:还是输入密码的问题,如果整个循环没有被break打断,证明用户密码输入三次都不正确。

i = 0
password = "114514"
while i < 3:
    i += 1
    pwd = input("请输入你的密码:")
    if pwd == password:
        print("密码正确")
        break
    else:
        print("密码错误")
else:
    print("嘤嘤嘤,密码都输错三次了,不能再输了耶!(。♥‿♥。)")

其实,这种else语法是可以被代替的,只需要在循环外加一个变量即可

i = 0
password = "114514"
flag = False #加一个变量
while i < 3:
    i += 1
    pwd = input("请输入你的密码:")
    if pwd == password:
        print("密码正确")
        flag = True #当密码正确时,变为True
        break
    else:
        print("密码错误")
if not flag: # 循环结束后判断密码是否输入正确
    print("嘤嘤嘤,密码都输错三次了,不能再输了耶!(。♥‿♥。)")

嵌套循环中的break和continue

在嵌套循环中,break和continue只会作用于本层循环,不会作用于外层循环。

示例:内层循环会跳过3,到7时就会结束内存循环,但外层循环不会结束。外层循环到11就会结束,自然内层循环不会继续执行。

for i in range(1, 20):
    if i == 11:
        break
    print("外层循环i=", i)
    for j in range(i + 1):
        if j == 3:
            continue
        elif j == 7:
            break
        print("\t\t内层循环j=", j)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狴犴ys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值