3. python基础

python语法

1. 几个概念

1.1 表达式

. 表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。

. 表达式的特点:
**.**表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响。
. 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出。

1.2 语句

. 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成。
. 语句的执行,一般会对程序的运行产生一定的影响,在交互模式中不一定会输入语句的执行结果。

1.3 程序(program)

. 程序就是由一条一条的语句和一条一条的表达式构成的。

函数(function)

. 函数就是一种语句,函数专门来完成特定的功能。

. 函数长的型如:xxx()

. 函数的分类:
内置函数:或者内建函数,就是由就是由语法规则存在的函数,这些函数,包含在编译器的运行时库中,程序员不比单独写代码实现它,只需要调用即可。

. 函数的2个要素:参数、返回值

标识符

2.1 关键字

. python一些具有特殊功能的标识符,这就是所谓的关键字,关键字是python已经使用的了,所以不允许开发者自己定义和关键字相同的标识符。
在这里插入图片描述

2.2 标识符的概念

. 开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名和函数名等。
. 组成:由26个英文字母大小写,数字0—9、符号_$
. 标识符的规制:
1.标识符中可以包含字母 、数字、下划线,但是不能数字开头,列如:name1 、 name_1 、 _name1 、 1name(不行)

2.python中不能使用关键字和保留字来作为标识符。

命名方式

驼峰命名法:

  1. 小驼峰式命名法:第一个单词以小写字母开始;第二个单词字母大写,例如:myName、aDog
  2. 大驼峰式命名法:每一个单字的首字母都采用大写字母,列如:FirstName、LastnName

下划线命名法:
3. 不过在程序员中还有一种命名法比较流行,就是下划线 “_”来连接所有单词,比如 get_url 、buffer_size

2. 变量

2.1 变量的概念?

. 变量是计算机内存的一块区域,存储规则范围内的值,值可以改变,通俗的说变量就是给数据起个名字。

. 变量名命名规则:

  1. 变量名由字母、数字、下划线组成要符合标识符的命名规范。
  2. 数字不能开头。
  3. 不能使用关键字。

. 注意:两个对象相等和两个对象是同一个是两个概念。

1. s1 = {'Jerry':'python'}
2. import copy
3. s2 = copy.deepcopy(s1)
4. print(s2) # {'Jerry': 'python'}
5.  
6. print(id(s1).id(s2))
7. print(s1==s2)

2.2 变量的运算

在这里插入图片描述
. 变量的运算就是正常的四则运算,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型。

3.1 变量在内存中的原理

引用变量

  1. 两个引用指向同一个int数据
1. a = 10
2. b = 10
3. printid(a).id(b))
 

结果地址一样

  1. 两个引用指向同一个数据list数据
1. list1 = {123}
2. list2 = list1.copy()
3. print(id(list1),id(list2)

结果:地址不一样

3.2 拷贝

1. list1 = [1, 2, 3]
2. list2 = list1.copy()
3. print(id(list1), id(list2))

结果拷贝地址不一样

4. 运算符

4.1 运算符

1.运算符的概念
. 运算符用于执行代码代码运算,会针对一个操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符是“+”

2. 运算符的分类:
. 算数运算符
. 赋值运算符
. 比较运算符(关系运算符)
. 逻辑运算符
. 条件运算符(三元运算符)

4.2 算数运算符

. 加法运算符 表现形式 “+”
. 减法运算符 表现形式 ”—“
. 乘法运算符 表现形式 “ * ”
. 除法运算符 表现形式“ / ”
. // 整除,只会保留计算后的整数位,总会返回一个整型。
. %取模,求两个数相除的余数。
. ** 幂运算,求一个值的几次幂

4.3 赋值运算

赋值运算符的特殊写法 x=x +3 其实是和 x+=3 是一样的
. += (x+= 3 相当于 x = x+3)
. -= (x-=3 相当于 x= x - 3)
. *= (x *3=3 相当于 x= x*3)
. **= (x **=3 相当于 x=x **3)
. /= (x/=3 相当于 x=x / 3)
. //= (x//=3 相当于 x=x//3)
. %= (x%=3 相当于 x=x % 3)

4.4 比较运算符

  1. 比较运算符用来比较两个值之间的关系,总会返回一个布尔值,如果关系成立会返回一个True,否则返回False
  2. ">"比较左侧值是否大于右侧值。
  3. “>="比较左侧的值是否大于右侧的值,或者等于右侧的值。
  4. ”<“比较左侧的值是否小于右侧。
  5. ”<=“比较左侧的值是否小于或者或则等于右侧的值。
  6. 特殊的比较方式
    ”==“比较两个对象的值是否相等。
    ”!=“比较两个对象的值是否不相等。
    ”is“比较两个对象是否是同一个对象,比较的是对象的id
    ”is not“ 比较两个对象是否不是同一个对象,比较的是对象的id

4.5 逻辑运算符

not 逻辑非:
. not 可以对右侧的值进行非运算,对于布尔值,非运算会对其进行取反操作,True变False,False变True

and 逻辑与
. and 可以对符号两侧的值进行与运算。只有符号两侧的值为True时,才会返回Tuer,只要有一个False就会返回False
. 与运算是找False的,如果第一个值为False,则不再看到第二个值

or 逻辑或
. 或则运算两个值中只要有一个True,就会返回True。
. 或运算是找True的。

非布尔值的与或运算
. 当我们进行非布尔值与或运算时,python会将其当做布尔值运算,最终会返回原值。
. 非布尔值的运算的规则:
与运算是找False的,如果第一个值是False,则不会看到第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值。

. 非布尔值或运算的规则:
或则运算是找True的,如果第一个值是True,则不会看到第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值。

4.6 条件运算符(三元运算符)

在这里插入图片描述

  1. 条件运算符在执行时,会先对条件表达式进行求值判断。
  2. 如果判断结果为True,则执行语句1,并返回执行结果。
  3. 如果判断结果为False,则执行语句2,并返回执行结果。
  4. 语法:语句1 if 条件表达式 else 语句2

4.7 运算符的优先级

在这里插入图片描述

5.常见问题总结

5.1 打印结果的问题

问题描述
在这里插入图片描述
在这里插入图片描述
只打印一个结果

在这里插入图片描述

5.2 数据类型错误的问题

在这里插入图片描述
计算圆的周长和面积,报错了。

在这里插入图片描述

5.3 f’'方法格式化字符串的书写

1. a = '刘亦菲'
2. b = '志玲姐姐'
3. print(f'hello, {a}, {b}')

5.4 代码的运行

  1. 代码的运行就是在程序中点击鼠标右键,然后点击run就可以了,不需要点击上方的绿色运行符号

5.5 字符串可以随机打印吗?

1. import random
2. list1 = ['刘亦菲', '周慧敏', '关之琳']
3. s = random.randint(0, 2)
4. print('我喜欢你', list1[s])

5.6 为什么打印结果会出错

在这里插入图片描述

  1. 这个是字符串的构成问题,只要是由单引号或者双引号引起的数据,都是字符串,而%f只能传递浮点型,%d只能传递整数

5.7 格式化浮点型数据的时候怎么让它精确小数位

f = 3.1415926
print('%.3f'%f)
输出结果:
3.142
  1. 空值浮点型的精确度即在%.数字即可,记住小数点一定要加

5.8 整形和浮点型数据不能够获取长度,也就不支持len函数

5.9 使用条件运算符取出三个数之间的最大值

a = 10
b = 30
c = 50
方法一:
m = a if a > b and a > c else b if b > c else c
方法二:
m = (a if a > b else b) if (a if a > b else b) > c else c
print(m)

5.10 x += 3这个写法为什么直接报错了

• x += 3 这个赋值运算符并不能单独使用,他的实质就是x = x + 3, 所以说我们需要先给x赋值一个初始值,他的作用通常是配合循环进行一个自增长的作用,如果初始值等于0,那么在循环中就是取3的倍数的所有值

5.11 m = 2 or 3 为什么会返回2,or不是找True吗?

• 0、空串、还有一些表示空性的值会转换为False,其他的所有都为True
• 2不符合0、空串还有空性的值,所以为True,或运算规则是找True,第一个为True,则直接返回第一个值,不看第二个值,否则返回第二个值

5.12 费布尔值的与计算,result = None and 0返回的是None

• 0、空串、还有一些表示空性的值会转换为False,其他的所有都为True
• 两个非布尔值进行与运算,如果第一个值是false,则直接返回第一个值,不看第二个值,如果第一个值为True,则直接返回第二个值

练习作业

  1. a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
1.a,b=6,8
2.a=a+2
3.b=b-2
4.print(a,b)
  1. 完成字符串的逆序以及统计
    • 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
    • 打印出字符串长度
    • 使用切片逆序打印出字符串
1. the_program=input("只能输入长度低于31的字符串:")
2. if len(the_program) <=31:
3.         print( '字符串长度:'+str(len(the_program)),'逆序打印出的:'+(the_program[::-1]))
4. else:
5.        print("错误,请重新输入")


3. 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?

# 方法1 拼串操作
name_1 = input("请输入想要谁嫁你:")
print("521 " + name_1 + " 嫁给我好吗?")

# 方法2 传参操作
name_2 = input("请输入想要谁嫁你:")
print(f"521 " + name_2 + " 嫁给我好吗?")

# 方法3 占位符操作
name_3 = input("请输入想要谁嫁你:")
print("521 %s 嫁给我好吗?" % name_3)

# 方法4 使用string.format()方法操作
name_4 = input("请输入想要谁嫁你:")
print("521 {} 嫁给我好吗?".format(name_4))

4. 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值

a=int(input("请输入a的值"))
b=int(input("请输入b的值"))
c=int(input("请输入c的值"))
d = str(a if a > b and a > c else a if b > a and b > c else c)
print('最大值是'+d)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值