python基础实战4-python基础语法

1、注释(Comments)

注释用来向用户提示或解释某些代码的作用和功能,它可以出现在代码中的任何位置。

Python解释器在执行代码时会忽略注释,不做任何处理,就好像它不存在一样。

1.1 代码注释介绍

  • 注释就是对代码的解释说明,可以让其他人更加轻松地了解代码
  • 注释就是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性
  • 在有处理逻辑的代码中,源程序有效注释量必须在20%以上。
  • 也可以用来调试程序

1.2 单行注释

在python中使用#号作为单行注释的符合

# 注释内容

 从#号开始,知道这行结束所有内容都是注释。python解释器遇到#时,会忽略它后面的整行内容。

说明多行代码的功能时一般将注释放在代码的上一行,如:

# 使用print输出hello、world、hello world
print("hello")
print("world")
print("hello world")


# 使用print输出数字
print(12)
print(100 + 2)
print(2 + 100 * 3 )

说明单行代码的功能时一般将注释放在代码的右侧,例如

print("https://www.csdn.net/")#输出csdn官网的网址
print( 12 * 24 ) #输出12*24的结果
print( 100 % 7 ) #输出余数

1.3 多行注释

 多行注释是指一次性注释程序中多行的内容(包含一行哪)。

python使用三个连续的单引号或者三个连续的双引号注释多行内容,具体格式如下

'''
使用 3 个单引号分别作为注释的开头和结尾
可以一次性注释多行内容
这里面的内容全部是注释内容
'''



"""
使用 3 个双引号分别作为注释的开头和结尾
可以一次性注释多行内容
这里面的内容全部是注释内容
"""

 注意事项:

1、python多行注释不支持嵌套,下面这种写法是错误的:

'''
外层注释
    '''
    内层注释
    '''
'''

2、不管是多行注释还是单行注释,当注释符作为字符串的一部分出现时,就不能在将它们视为注释标记,而应该看做正常代码的一部分,例如:

print('''hello world''')
print("""hello world""")
print("#hello world")

运行结果如下:

对于前两行代码,python没有将这里的三个引号看作是多行注释,而是将它们看作字符串的开始和结束标志。

对于第三行,python也没有将#号看作单行注释,而是将它看作字符串的一部分。

2、变量以及数据类型

2.1 变量的基本使用

程序是用来处理数据的,而变量是用来存储数据的。

2.1.1 变量的定义

  • 在python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
  • 等号(=)用来给变量赋值
    • 等号左边是一个变量名
    • 等号右边是存储在变量中的值
变量名 = 值

变量定义之后,后续就可以直接使用了 ,代码实例如下:

# 定义qq_number 的变量用来保存qq号码
qq_number = "123456789"

# 输出qq_number中保存的内容
print(qq_number)  #结果:123456789

# 定义qq_password的变量用来保存qq密码
qq_password = "abc123456"

# 输出qq_password中保存的内容
print(qq_password)#结果:abc123456

演练--超市买苹果

提示:可以用其他变量的计算结果来定义变量

           变量定义之后,后续就可以直接使用了

需求:

  • 苹果的价格是8.5元/斤
  • 买了7.5斤苹果
  • 计算付款金额
# 定义苹果价格变量
price = 8.5

# 定义购买重量, 买了多少苹果
weight = 7.5

# 计算付款金额
money = price * weight
print(money)

思考题

  • 如果只要买苹果,就返5块钱
  • 请重新计算购买金额 
# 定义苹果价格变量
price = 8.5

# 定义购买重量
weight = 7.5

# 计算金额
money = price * weight

# 只要买苹果就返5元
money = money - 5

print(money)

提问:

上述代码中,一共定义有几个变量? 

 三个:price 、weight 、money

money = money - 5 是在定义新的变量还是在使用变量?

  • 直接使用之前已经定义的变量
  • 变量名只有在第一次出现才是定义变量
  • 变量名再次出现,不是定义变量,而是直接使用之前定义过的变量

在程序开发中,可以修改之前定义变量中保存的值吗?

可以

变量中存储的值,就是可变的。

2.1.2 查看数据类型 

  • 在python,只要定义了变量,而且它有数据,那么它的类型就已经确定了,不需要主动说明它的类型,系统也会自动辨别。也就是说“变量没有类型,数据才有类型”。
  • 比如下面的实例里,我们没法预测变量b的类型,但是a的类型可以依据数据来确认。

  • 如果临时想要查看一个变量存储的数据类型,可以使用type(变量的名字),来查看变量存储的数据类型。

2.1.4 变量命名规则

变量命名规则:

1.变量命名不可以以数字开头,如4four,3man;

2.不推荐使用以下划线开头,下划线开头的内容在python中有特殊意义,如_age,_name;

3.推荐视同固定单词及其缩写,如skt=soket

4.以posix命名规则为主,posix命名规则单词全部小写,且所有单词之间以下划线连接,如my_first_love;

5.驼峰命名法:所有单词自动连接,且每个单词首字母均大写,分为驼峰命名法和小驼峰命名法: 大驼峰命名法:所有单词首字母均大写,如MyFirstLove; 小驼峰命名法:第一个单词首字母小写,其余均大写,如myFirstLove;

6.避开关键字和保留字

2.1.5 查看保留字

import keyword
print(keyword.kwlist)

注意:Python中所有保留字是区分字母大小写的。例如,if是保留字,但是IF就不属于保留字。 

常见错误:如果在程序开发时,使用python中的保留字作为模块、类、函数或变量等的名称,则会提示“invalid syntax”的错误信息。 

2.2 数值类型

整型(Int)-通常被称为是整型或整数,是正或负整数,不带小数点。

浮点型(float)-浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示。

复数(complex)-复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示

布尔类型的常量(True和False)如果出现在算术运算中,True被当作1,False被当作0.

intfloatcomplex
100.03.14j
10015.2045.j
-786-21.99.322e-36j
08032.3e+18.876j
-0490-90.0-6545+0J
-0x260-32.54e1003e+26J
0x6970.2E-124.53e-7j

2.2.1 数值类型转换

函 数作 用
int(x)将 x 转换成整数类型
float(x)将 x 转换成浮点数类型
complex(real,[,imag])创建一个复数
str(x)将 x 转换为字符串
bool(x)将x转换成为布尔值
repr(x)将 x 转换为表达式字符串
eval(str)计算在字符串中的有效 Python 表达式,并返回一个对象
chr(x)将整数 x 转换为一个Unicode字符
ord(x)将一个字符 x 转换为它的ASCII整数值
hex(x)将一个整数 x 转换为一个十六进制字符串
oct(x)将一个整数 x 转换为一个八进制的字符串
bin(x)将一个整数转换为一个二进制字符串
tuple(s)将序列s转换为一个元组
list(s)将序列s转换为一个列表
  • 转换成整数
print(int("100")) #100 将字符串转换成为整数

print(int(100.99)) #100 将浮点数转换成为整数


print(int(True)) #1 布尔值True转换成为整数 1
print(int(False)) #0 布尔值False转换成为整数是 0


#使用int()函数进行类型转换时,还可以传入两个参数,第二个参数用来表示进制
print(int("21",8)) # 输出的结果是17,八进制的21,对应的十进制数字是17


  • 转换成为浮点数

f1 = float("12.23")
print(f1) # 12.34
print(type(f1)) # float 将字符串的“12.34” 转换成为浮点数 12.34

f2 = float(23)
print(f2) # 23.0
print(type(f2)) # float 将整数转换成为了浮点数
  • 转换成为字符串
str1 = str(45) # '45'

str2 = str(34.56) # '34.56'

Str3 = str(True) # 'True'

print(type(str1),type(str2),type(str3)) # 全部都是str类型,也就是字符串类型
  • 转换成布尔值 
print(bool(''))
print(bool(""))
print(bool(0))
print(bool({}))
print(bool([]))
print(bool(()))
print(bool(None))

在Python中,只有空字符串'',"",数字0,空字典{},空列表[],空元组(),和空数据None会被转换成为False,其他的都会被转换成为True。 

2.2.2 python中常用的内置数学函数

2.2.3 随机函数

随机数可以用于数学、游戏、安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

3、标识符及关键字

标识符和关键字是计算语言的基本语法元素,是编写程序的基础,不同计算机语言的标识符和关键字略有区别。

3.1 标识符

计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。

3.1.1 标识符命名规则

  • 标识符由字母、下划线和数字组成,且数字不能开头,不能包括空格、@、%和$等特殊字符
  • 严格区分大小写
  • 不能使用关键字
  • 不能使用python中的保留字
  • Python中以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符
  • 以单下划线开头的标识符(如_width)表示不能直接访问的类属性外,也不能通过“from xxx import * ”导入。

3.1.2 标识符命名要求规范

  • 标识符命名要做到顾名思义

起一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可读性)比如:名字 就定义为name

  • 遵守一定的命名规范
    • 驼峰命名法,又分为大驼峰命名法和小驼峰命名法
      • 小驼峰式命名法:第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
      • 大驼峰式命名法:每一个单字的首字母都采用大写字母,例如:FirstName、LastName。
    • 还有一种命名法是用下划线“_”来连接所有的单词,比如send_buf,python的命名规则遵循PEP8标准

变量名,函数名和文件名全小写,使用下划线连接;

类名遵守大驼峰命名法;

常量名全大写;

思考:下面的标识符哪些是正确的,哪些是不正确的为什么?

   fromNo12
   from#12
   my_Boolean
   my-Boolean
   Obj2
   2ndObj
   myInt
   test1
   Mike2jack
   My_tExt
   _test
   test!32
   haha(da)tt
   int
   jack_rose
   jack&rose
   GUI
   G.U.I

3.2 关键字

一些具有特殊功能的标识符,就是关键字。

因为关键字已经被python官方使用了,所以不允许开发者自己定义和关键字相同名字的标识符

关键字描述
and逻辑运算符
as创建别名
assert用于调试
break跳出循环
class定义类
continue继续循环的下一个迭代
def定义函数
del删除函数
elif在条件语句中使用,等同于else if
else用于条件语句
except处理异常,发生异常时任何执行
False布尔值,比较运算的结果
finally处理异常,无论是否存在异常,都将执行一段代码
for创建for循环
from导入模块的特定部分
global声明全局变量
if写一个条件语句
import导入模块
in检查列表、元组等集合中是否存在某个值
is测试两个变量是否相等
lambda创建匿名函数
None表示null值
nonlocal声明非局部变量
not逻辑运算符
or逻辑运算符
passnull语句,一条什么都不做的语句
raise产生异常
return退出函数并返回值
True布尔值,比较运算的结果
try编写try...except语句
while创建while循环
with用于简化异常处理
yield结束函数,返回生成器

4、运算符

4.1 算术运算符和算术运算表达式 

运算符说明实例结果
+12.45+1527.45
-4.56-0.264.3
*5*3.618
/7/23.5
%取余,即返回除法的余数7%21
//取整除,即返回商的整数部分7//23
**幂,即返回x的y次方2**416,即2^4
()小括号,提高运算优先级(1+2)*39

注意:混合运算时,优先级顺序为:**高于* / % // 高于+ -,为了避免歧义,建议使用()来处理运算符优先级。并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。 

print(321 + 123) #加法运算
print(321 - 123) #减法运算
print(321 * 123) #乘法运算
print(321 / 123) #除法运算
print(321 % 123) #取余运算
print(321 // 123) #整除运算
print(321 ** 123) #求幂运算
  • 如果是两个字符串做加法运算,会直接把这两个字符串拼接成一个字符串。
str1 = 'hello'
str2 = 'world'
print(str1 + str2)
  • 如果是数字和字符串做加法运算,会直接报错
str1 = 'hello'
a = 1
print(a + str)

报错信息如下:

  •  如果是数字和字符串做乘法运算,会将这个字符串重复多次
str1 = 'hello'
result = str1 * 5
print(result)

运行结果:

 

4.2 关系运算符和关系运算表达式 

关系运算符用来比较两个对象之间的关系,对象可以是数或字符串等常量、变量或表达式。

比较运算符说明
>大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。
<小于,如果<前面的值小于后面的值,则返回 True,否则返回 False。
==等于,如果==两边的值相等,则返回 True,否则返回 False。
>=大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False。
<=小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False。
!=不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False。
is判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False。
is not判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False。
  • 字符串使用比较运算符

数字和字符串做==运算结果是false,除了==以外的逻辑运算时,会直接报错。

 如果是两个字符串进行比较,会将每个字符都转换成对应的编码,然后逐一进行对比

4.3 赋值运算符和赋值运算表达式

 赋值运算符用来将表达式的结果赋给变量。

运算符说明举例展开形式
=简单的赋值运算x = yx = y
+=加赋值x += yx = x + y
-=减赋值x -= yx = x - y
*=乘赋值x *= yx = x * y
/=除赋值x /= yx = x / y
%=取余数赋值x %= yx =  x % y
**=幂赋值x **= yx = x ** y
//=最整除赋值x //= yx = x // y
  • 单个变量赋值

  • 同时为多个变量赋值(使用等号连接)

 

  •  多个变量赋值(使用逗号分隔)

  •  赋值错误的情况
# 语法错误,值的个数超过变量的个数,赋值失败
num1 , num2 = 1,2,3

#语法错误,变量的个数超过赋值的个数,赋值失败
num1, num2 ,num3 ,num4 = 1,2,3

4.4 逻辑运算符和逻辑运算表达式 

逻辑运算符用来判断逻辑运算对象之间的关系。

逻辑运算符含义基本格式说明
and逻辑与运算,等价于数学中的“且”a and b当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。
or逻辑或运算,等价于数学中的“或”a or b当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。
not逻辑非运算,等价于数学中的“非”not a如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。

示例:

# 声明变量a,b
a = 45
b = 28

# 使用逻辑运算符and
print((a > b) and (b > 10))
#即:45 > 28 and 28 > 10 ---> True and True ---> True

print((a > b) and (b > 10) and (a < 20))
#即:45 > 28 and 28 > 10 and 45 > 20 ---> True and True and False ---> False

print(a and b and 'hello')
#a,b,'hello'都是有值的即为True,所以取最后一个值

#使用逻辑运算符or
print((a > 50 ) or ( b < 10 ) or (a == b))
# False or False or False ---> False

print((a > 50 ) or ( b > 10 ) or (a < b))
#False or True or False --->True

#None,0,''的表示
print(0 or None)
print(a or '')
print(0 or "" or None)

 运行结果

4.5 位运算符和位运算表达

 位运算符用来把两个运算对象按照二进制进行位运算。

位运算符说明使用形式举 例
&按位与a & b4 & 5
|按位或a | b4 | 5
^按位异或a ^ b4 ^ 5
~按位取反~a~4
<<按位左移a << b4 << 2,表示整数 4 按位左移 2 位
>>按位右移a >> b4 >> 2,表示整数 4 按位右移 2 位

4.6 成员运算符和成员运算表达式

成员运算符用来判断两个对象之间的关系。

In判断对象是否在序列中 

Not判断对象是否不在序列中

返回结果为true或false

4.7 身份运算符和身份运算表达式

身份运算符用来比较两个对象之间的存储单元。

is判断两个标识符是否引用同一对象

is not判断两个标识符是否引用不同对象

返回结果为 true 或 false

4.8 运算符优先级

运算符说明Python运算符优先级结合性优先级顺序
小括号( )19
︿
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 | 
 |
 |
索引运算符x[i] 或 x[i1: i2 [:i3]]18
属性访问x.attribute17
乘方**16
按位取反~15
符号运算符+(正号)、-(负号)14
乘除*、/、//、%13
加减+、-12
位移>>、<<11
按位与&10
按位异或^9
按位或|8
比较运算符==、!=、>、>=、<、<= 7
is 运算符is、is not6
in 运算符in、not in5
逻辑非not4
逻辑与and3
逻辑或or2
逗号运算符exp1, exp21

4.9 三目运算符(三元运算符)

 假设现在有两个数字,我们需要获得其中较大的一个,那么可以使用if else语句,例如:

if a>b:
    max = a;
else:
    max = b;

但是python提供了一种更加简洁的写法

max = a if a>b else b

使用 if else 实现三目运算符(条件运算符)的格式如下:

exp1 if contion else exp2

condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

前面的语句max = a if a>b else b的含义是:

  • 如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
  • 如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。

三目运算符的嵌套

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:

a if a>b else c if c>d else d

 应该理解为:

a if a>b else ( c if c>d else d )

 【实例】使用 Python 三目运算符判断两个数字的关系:

a = int( input("Input a: ") )
b = int( input("Input b: ") )
print("a大于b") if a>b else ( print("a小于b") if a<b else print("a等于b") )

可能的运行结果:

 

该程序是一个嵌套的三目运算符。程序先对 a>b 求值,如果该表达式为 True,程序就返回执行第一个表达式 print(“a大于b”),否则将继续执行 else 后面的内容,也就是:

( print("a小于b") if a<b else print("a等于b") )

进入该表达式后,先判断 a<b 是否成立,如果 a<b 的结果为 True,将执行 print(“a小于b”),否则执行 print(“a等于b”)。

补充说明:

  • python中的一些运算符不仅可以用于数字等运算,还可以用于对字符串、列表和元组等组合对象的运算。
  • python支持++i 、--i 运算符,但含义和其他语言中的不同。
  • python不支持i++、i--运算符。

5、输出语句

print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出。

格式符号转换
%%输出 % 号
%s字符串
%d有符号十进制整数
%f浮点数
%c字符
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写字母0x)
%X十六进制整数(大写字母0X)
%e科学计数法(小写'e')
%E科学计数法(大写“E”)
%g%f和%e 的简写
%G%f和%E的简写
#什么是格式化?
age = 10
print("我今年%d岁" % age)

age += 1
print("我今年%d岁" % age)

age += 1
print("我今年%d岁" % age)

 在程序中,看到了%这样的操作符,这就是Python中格式化输出结果

 5.1 指定对齐方式 

标志说明
-指定左对齐
+表示输出的数字总要带着符号;正数带+,负数带-
0表示宽度不足时补充 0,而不是补充空格。

5.2 指定小数精度 

对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。

精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:

%m.nf
%.nf

 m 表示最小宽度,n 表示输出精度,.是必须存在的。

5.3 python2与python3里的区别

在python3里,print只能使用函数的方式来调用,而在python2里,print可以当做一个命令来使用。

print("hello world")   # 在python2和python3里都可以使用
print "hello world"  # 这种写法只能在python2里使用,python3不再支持这种写法

6、输入语句

  • 所谓输入,就是用代码获取用户通过键盘输入的信息
  • 例如:取银行取钱,在ATM上输入密码
  • 在python中,如果要获取用户在键盘上的输入信息,需要使用到input函数

6.1 关于函数

一个提取准备好的功能(别人或者自己写的代码),可以直接使用,而不用关心内部的细节

函数说明
print(x)将x输出到控制台
type(x)查看x的变量类型

6.2 input函数实现键盘输入

  • 在python中可以使用input函数从键盘等待用户的输入
  • 用户输入的任何内容python都认为是一个字符串
字符串变量 = input("提示信息:")

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

再快一步`

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

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

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

打赏作者

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

抵扣说明:

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

余额充值