第二章

本章概览

介绍python中的保留字、标识符、变量、基本数据类型、数据类型转换、运算符、表达式等内容

2.1 Python语法特点

  • 注释
    注释就是对代码的解释说明,让他人了解代码实现的功能,从而帮助程序员,更好的阅读代码,注释内容将会被Python解释器忽略掉,并不会在执行结果中体现出来。

  • 注释种类
    在Python中包括三种类型的注释,分别是单行注释多行注释中文编码声明注释

e.g: #-*- coding:utf-8 -*- ------> 单行注释
'''
	@功能:根据身高、体重计算BMI指数    
	@author : xxxx
	@Cteate : 2020/12/12
'''                        ------->多行注释
# ==============程序开始====================#  
					       ------->单行注释

1 . 单行注释


**格式:** # 注释内容   
使用“#” 作为单行注释的符号,从符号“#”开始直到换行结束,# 后面所有的内容都将作为注释,并被Python编译器忽略



**注释形式** 第一种形式:

 #要求输入身高,单位为m(米),如1.70
 height = float(input("请输入您的身高: "))

	        第二种形式:
 height = float(input("请输入您的身高: ")) #要求输入身高,单位为m(米),如1.70

 IDLE 中 Alt + 3 注释代码 Alt + 4 取消注释代码

2 . 多行注释


**格式:** ''' 注释内容  '''
Python中没有单独的多行注释符号,而是将包含在一对三引号(''' .... ''') 或者 (""" .... """) 之间
e.g: '''
	 注释内容1
	 注释内容2
	 '''
或者
	"""
	 注释内容1
	 注释内容2
	"""


**注释形式** 
多行注释通常为Python文件,模块,类,或者函数等添加版权,功能等信息
               '''
               @版权所有:
               @文件名称:
               @文件功能描述:
               @创建日期:
               @创建人:
               @修改标识符:
               @修改描述:
               @修改日期:
               
               '''
或者使用""" .... """ 替换 ''' .... '''

3 . 中文编码注释


在Python中,还提供了一种特殊的中文编码声明注释,该注释出现主要是为了解决Python2.x中不支持直接写中文
的问题,在Python3.x 中已得到解决,但是为了代码规范性,建议文件开始加上中文编码注释

**格式:**:# -*- coding:编码 -*- 或者 # coding=utf-8
注释:采用UTF-8 则 # coding=utf-8 采用GBK 则 # coding=gbk/# coding=cp936

2.2 代码缩进

Python 采用代码缩进和冒号:区分代码之间的层次。缩进可以使用Tab建实现,或者四个空格等于一个Tab

在Python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。


# coding=utf-8

"""
@文件名:demo.py
@功能:演示代码缩进

"""


height  = float(input("请输入您的身高: ")) #输入身高 单位(m)米
weight  = float(input("请输入您的体重: ")) #输入体重 单位(kg)公斤
bmi    = weight/(height*height)             #计算BMI值


#判断身材是否合理

if bmi<18.5:
    print("您的BMI指数为:"+str(bmi))  #输出BMI指数
    print("体重过轻 ~@_@~")
if bmi>=18.5 and bmi < 24.9:
    print("您的BMI指数为:"+str(bmi))  #输出BMI指数
    print("正常范围,请注意保持(-_-)")
if bmi>24.9 and bmi<29.9:
    print("您的BMI指数为:"+str(bmi))  #输出BMI指数
    print("体重过重 ~@_@~")
if bmi>=29.9:
    print("您的BMI指数为:"+str(bmi))  #输出BMI指数
    print("肥胖-放弃治疗 ^@_@^")

代码规范

Python采用PEP8(Python 增强建议书)的书写规范,其中8代表版本号,下面列举规范中严格遵守的条目

  1. 每个import语句只导入一个模块,尽量避免导入多个模块
  2. 不要在行尾添加分号“;”,也不要用分号将两个语句放在同一行
  3. 建议每行不超过80个字符,如果超过建议使用小括号()将多行内容隐式的连接起来而不推荐使用反斜杠\进行连接

s=("我一直以为我是一只蜗牛。我一直爬,也许还没有爬到金字塔的顶端。"
	"但是只要你在爬,就足以给自己留下令生命感动的日子。")
**采用这种**

s=("我一直以为我是一只蜗牛。我一直爬,也许还没有爬到金字塔的顶端。\
	但是只要你在爬,就足以给自己留下令生命感动的日子。")

  • 命名规范
  1. 模块名尽量短小,并且全部为小写字母
  2. 包名尽量短小
  3. 类型采用单词首字母大写形式
  4. 模块内部的类采用下划线开头的形式
  5. 函数、类的属性命名和模块一致,多个字母用下划线拼接
  6. 常量命名时全部用大写可以使用下划线
  7. 使用__双下划线开头的实例变量或者方法是私有的

2.3 保留字与标识符

  • 保留字

保留字是Python 语言中已经被赋予特殊意义的单词,开发程序时,不可以把这些保留字作为,变量,函数,类,模块和其他名称来使用

and as assert break class continue def del elif else except 

finally for from False global if import in is lamdba nonlocal

not None or pass raise return try True while with yield

注意:Python中的保留字区分大小写(if 和 IF )含义不同。

注意:Python中的保留字可以在IDLE中查看


import keyword
keyword.kwlist

>>> import keyword
>>> keyword.kwlist

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

  • 标识符

标识符可以理解为一个名字,主要用来标识变量,函数,类,模块和其他对象名称

Python标识符命名规则如下

  1. 由字母、下划线、和数字组成、第一个字符不能是数字,目前Python中只允许使用ISO-Latin字符集中的字符 A~Z 和 a~z
  2. 不能使用保留字
  3. Python中下划线开头的标识符都有特殊含义

以单下划线开头的标识符(如 _width)表示不能直接访问的类属性,另外也不能通过 from xxx import导入

以双下划线开头的标识符(如 __add) 表示类的私有成员

以双下划线开头和结尾的是Python里专用标识符,如 __init__() )

注意:标识符中不能包括空格、@、%、和$ 等特殊符合

注意:Python中标识符的字母严格区分大小写的

如下列:彼此直接都是个体
number = 0
NUMBER = 0
Number = 0

2.4 变量

Python中,不需要事先申明变量类型,直接赋值即可创建各种类型的变量,但是变量的命名并不是任意的,应该综训以下规则

  1. 变量名必须是一个有效的标识符
  2. 变量名不能使用Python中的保留字
  3. 谨慎使用小写字母i 和大写字母O
  4. 应该选择有意义的单词作为变量名

  • 变量赋值
为变量赋值可以通过等号(=)来实现,语法格式为:
 变量名 = value
 例如创建一个整型变量,并为其赋值1024 (number = 1024)
 		创建一个字符型变量, (nickname = '碧海苍梧')
 
 Python是动态语言可以将一个变量名称,亦可以将数值型赋值给该变量,如下展示:
 	>>> nickname = "碧海苍梧"
 	>>> print(type(nickname))
 	<class 'str'>
 	>>> nickname = 1024
 	>>> print(type(nickname))
 	<class 'int'>
 	>>> 
 注释:type()函数返回变量类型
 
 Python中,允许多个变量指向同一个内存地址:
 >>> no = number = 1024
 >>> id(no)
 3104554418320
 >>> id(number)
 3104554418320
 注释:id()可以获取变量内存地址

2.5 基本数据类型

在内存中存储的数据可以有多种类型,字符型,数值型,布尔型都是Python语言中提供的基本数据类型。


数字类型

Python语言中,提供了数字类型用于保存数值,并且它们是不可变的数据类型。如果修改数字类型变量的值,那么会把该值保存在内存中,然后修改变量让其指向新的内存地址

Python语言中,数字类型主要包括,整型,浮点型和复数。


  • 整数

1)十进制整数
	  512
	  918
	  0
	  -2020 都是整数
	  注释:不能以0作为十进制数的开头
2)八进制整数
	 由0-7组成,进位规则“逢八进一”并且以0o / 0O 开头的数字
	 如: 0o123 转化为 十进制是 1*8*8+8*2+3 = 83
	 
	 注意:Python3.x 中八进制数必须以 0o / 0O 开头,但是2.x中 可以以0开头
3)十六进制整数
	 由0-9 ,A-F 组成,进位规则“逢十六进一”,并且以0x/0X 开头的数
	 如:0x25  转化为 十进制是 2*16 + 5 = 37
	注意 :十六进制的数必须是0x/0X开头的。

  • 浮点数

浮点数是由整数和小数部分组成,主要用于处理包括小数的数,
例如:1.414 ,3.1415926,-1.732
    浮点数也可以使用科学计数法表示,例如,2.7e2/-3.14e5和6.16e-2等
    注意:浮点数计算的时候可能出现小数位不确定的情况,如计算0.1 + 0.1 得到 0.2,计算0.1+0.2 时会得到0.30000000000000004 执行结果如下:
	>>> 0.1 + 0.1
	1. 2
	>>> 0.1 + 0.2
	0.30000000000000004
	>>>

实例:在IDLE中创建一个名称为bmiexponent.py 一个用于记录身高(单位 m ) ,另一个记录体重(单位 kg)根据公示“BMI = 体重/(身高*身高)”计算BMI指数。代码如下:

# coding=utf-8
    """
        @功能:根据公示“BMI = 体重/(身高*身高)”计算BMI指数
        @作者:我是土豆又土又逗
        @时间:2020/12/13
    """
    #计算BMI值
    
    height = float(input("请输入你的身高(单位m):")) #输入身高
    print("您的身高是"+ str(height*100) +"cm")
    weight = float(input("请输入你的体重(单位kg):"))#输入体重
    print("您的体重是"+ str(weight*2)+"斤" )
    
    bmi = weight/(height*height)                      #用于计算BMI指数公式:BMI=体重/身高的平方
    print("您的BMI指数是" + str(bmi))
    
    #判断你的BMI值是否合理
    
    if bmi <18.5:
        print("您的体重过轻 ~@_@~")
    elif bmi >= 18.5 and bmi <24.9:
        print("正常范围,注意保持(-_-)")
    elif bmi >=24.9  and bmi <29.9:
        print("您的体重过重 ~@_@~")
    else:
        print("肥胖 ^@_@^")

输出结果  =====
    请输入你的身高(单位m):1.6
    您的身高是160.0cm
    请输入你的体重(单位kg):57
    您的体重是114.0斤
    您的BMI指数是22.265624999999996
    正常范围,注意保持(-_-)
    >>>

  • 复数

Python中的复数与数学中的复数形式完全一致,都是由虚部和实部组成,并且使用J或j表时虚部,例如一个复数的表示方法:
3.14 + 12.5J

>>> 3.14 + 12.5J
      3.14+12.5j)
  >>>

字符串类型

字符串就是连续的字符序列,可以是计算机能表时的一切字符集合。在python中,字符串属于不可变序列,通常用单引号 “ ’ ’ ”/双引号“ " " ”/或三引号 “ ‘’’ ‘’’ ” 表示起来。例如:使用三种表示方式,用print()方法打印出来

# coding = utf-8
'''
    功能:三种形式表示字符串
    时间:2020/12/13
    作者:我是土豆又土又逗

'''

title = '我喜欢的名言警句' #使用单引号,字符串内容必须在一行
mot_cn = "命运给予我们的不是失望之酒,而\是幸运之杯"#使用双引号,字符串内容必须在一行
mot_en = '''Our destiny offers not the cup of despair,
             but the change of opportunity'''

print(title)
print(mot_cn)
print(mot_en)

-------输出结果
我喜欢的名言警句
命运给予我们的不是失望之酒,而\是幸运之杯
Our destiny offers not the cup of despair,
             but the change of opportunity
>>> 

 
 **注意:** :可以嵌套使用字符串,但是开头和结尾必须一致
 在Python中也可以使用双引号定义字符串
     print("'(..)nnn'也是字符串")    '(..)nnn'也是字符串
     print("""'___' "_"***""")       '___' "_"***

实例:输出坦克

在IDLE中创建一个坦克输出文件,tank.py,按照格式打印,需要使用三引号作为字符的定界

# coding = utf-8

 '''
     @功能:输出坦克
     @作者:我是土豆又土又逗
     @时间:2020/12/13
     
 
 '''
 print('''
                             ▶
                             |
                      __\--__|_---
   Ⅱ=========000000[/  卍 007--_|
               ______\_______|/-------.
              /______I'M TankS SHOW___|
              \◎◎◎◎◎◎◎◎◎◎◎_/
                ~~~~~~~~~~~~~~~~~~~~~
 ❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉❉   
       ''')

Python中常用的转义符号
\   续行符   \n  换行符  \0 空    \t 制表符  
\"  双引号    \'  单引号  \\ 反斜杠 \f 换页

布尔类型

布尔类型主要用来表示真值或者假值,True / False 被解释为布尔值,Python中的布尔值可以被转换为数值 True = 1 False = 0 print(True+1) = 2 但是不建议对布尔值进行计算

Python中所有的对象都可以进行真值测试
1:False 或 None 
>>> print(bool(False))
False
>>> print(bool(None))
False
2: 数值中的零,包括0.0,虚数0
3:空序列、包括字符串、空元组、空列表、空字典

数据类型转换

**函数**                              **作用**

int(x)                             将x转换为整数类型
float(x)						   将x转换为浮点类型
complex(real,[,image])			   创建一个复数
str(x)							   将x转换为字符串
repr(x)                            将x转换为字符串表达式 
eval(str)						   计算在字符串中的有效Python表达式,并返回一个对象		
chr(x)                             将整数x转化为一个字符
ord(x)							   将一个字符x转化为对应的数值
hex(x)			                   将一个整数x转化为一个十六进制的字符串
oct(x)                             将一个整数X转化为一个八进制的字符串

超市抹零功能
# coding=utf-8

'''
    @ 功能:超市抹零功能
    
'''
money_all = 56.75 + 72.91 + 88.50 + 26.37 + 68.51 #累加总计金额
money_all_str = str(money_all)

print("商品总价值为: " + money_all_str)

money_real = int(money_all)
money_all_str = str(money_real)

print("实收金额为:" + money_all_str)

2.6 运算符

运算符是一些特殊符号,主要用于数学计算,比较大小,逻辑运算等,主要包括,算数运算符、赋值运算符、关系运算符、逻辑运算符和位运算符。算术运算符连接起来的式子叫算数表达式,使用逻辑运算符连接起来的表达式称为逻辑表达式。

算数运算符

运算符

说明

实例

结果

+


123+1

124

-


4.56 - 0.26

4.3

*


5*4

20

/


20/5

4

%

求余数,即返回除法的余数

7%2

1

//

取整除,及返回商的整数部分

7//2

3

**

幂,即返回x的y次方

2**4

16

# coding=utf-8

'''
    @ 功能:计算学生成绩分差和平均分
    
'''
money_all = 56.75 + 72.91 + 88.50 + 26.37 + 68.51 #累加总计金额
money_all_str = str(money_all)

print("商品总价值为: " + money_all_str)

money_real = int(money_all)
money_all_str = str(money_real)

print("实收金额为:" + money_all_str)

赋值运算符

赋值运算符主要是为变量赋值等。

运算符

说明

举例

展开形式

=

简单的赋值运算符

x=y

x=y

+=

加赋值

x+=y

x=x+y

-=

减赋值

x-=y

x=x-y

*=

乘赋值

x*=y

x=x*y

/=

除赋值

x/=y

x=x/y

%=

取余赋值

x%y

x=x%y

**=

幂赋值

x**=y

x=x**y

//=

取整除赋值

x//=y

x=x//y

注意:“=” 和 “==” 不一样 一个是赋值号,一个是等于


关系运算符

比较运算符又称为关系运算符,用于对表达式结果的大小,真假等比较,如果比较结果为真,则返回True,否则返回False

运算符

作用

举例

结果

>

大于

‘a’ > ‘b’

False

<

小于

156 < 456

True

==

等于

‘c’ = ‘c’

True

!=

不等于

‘y’ != ‘t’

True

>=

大于等于

479 >= 426

True

<=

小于等于

62.45 <= 45.5

False

注意:Python中,判断一个值是否介于 两个值之间 ,可以采用 值1 < 变量 < 值2

# coding = utf-8
"""
    @功能:使用比较运算符比较大小关系
    @时间:2020/12/12
    
"""

Python = 95 #定义变量,存储Python课程分数
english= 92 #定义变量,存储Englist课程分数
c      = 89 #定义变量,存储C语言课程分数

print("python = %d ,english = %d ,c = %d "%(Python,english,c) + '\n')

print("Python < english 的结果 :" + str(Python < english)) #小于操作
print("Python > english 的结果 :" + str(Python > english)) #大于操作
print("Python == english 的结果 :" + str(Python == english)) #等于操作
print("Python != english 的结果 :" + str(Python != english)) #不等于操作
print("Python <= english 的结果 :" + str(Python != english)) #小于或等于操作
print("Python >= c 的结果 :" + str(Python >= c)) #大于或等于操作
运行结果  ==================================
python = 95 ,english = 92 ,c = 89 
Python < english 的结果 :False
Python > english 的结果 :True
Python == english 的结果 :False
Python != english 的结果 :True
Python <= english 的结果 :True
Python >= c 的结果 :True
>>>

逻辑运算符

逻辑运算符是对真假两种布尔值进行计算,运算后的结果任然是一个布尔值,Python中的逻辑运算符符号主要包括and(逻辑与) or (逻辑或) not(逻辑非)

运算符

含义

用法

结合方向

and

逻辑与

表达式1 and 表达式2

从左到右

or

逻辑或

表达式1 or 表达式2

从左到右

not

逻辑非

not 表达式

从右到左

OP_One

OP_TWO

OP_One and OP_Two

OP_One or OP_Two

not OP_One

True

True

True

True

False

True

False

False

True

False

False

False

False

False

True

False

True

False

True


# coding = utf-8
 """
     @功能:参加手机店的打折活动
     @时间:2020/12/13
 """
 print("\n手机店正在打折,活动进行中.......")#输出提示信息
 strweek = input("请输入中午星期几(如:星期一):")#输入星期几
 intTime = int(input("请输入时间中的小时(范围:0~23):")) #输入时间
 
 #判断是否满足活动参加条件
 if (strweek == '星期一' and  (10 <= intTime <=11)) or (strweek == '星期五' and  (14 <= intTime <=15)):
     print("恭喜您,获得了折扣活动参与资格,快快选购吧")
 else:
     print("Sorry ,您来晚了一步,期待下次活动")
	 
	 
 **运行结果 =====**
 

手机店正在打折,活动进行中.......
请输入中午星期几(如:星期一):星期五
请输入时间中的小时(范围:0~23):19
Sorry ,您来晚了一步,期待下次活动
>>> 
================= RESTART: D:/python/Python_CSDN笔记/第二章/sale.py =================

手机店正在打折,活动进行中.......
请输入中午星期几(如:星期一):星期二
请输入时间中的小时(范围:0~23):10
Sorry ,您来晚了一步,期待下次活动
>>> 
================= RESTART: D:/python/Python_CSDN笔记/第二章/sale.py =================

手机店正在打折,活动进行中.......
请输入中午星期几(如:星期一):星期一
请输入时间中的小时(范围:0~23):10
恭喜您,获得了折扣活动参与资格,快快选购吧
>>>

位运算符

位运算符是把数字看成二进制数来进行计算,python中的位运算符有 与(&)、或(|)、异或(^)、取反(~),左位移(<<) 右边 (>>) 运算符
注释:整形数据在内存中以二进制的形式表示,如7的32二进制形式如下:
00000000 00000000 00000000 00000111

1:“位与运算”
“位与”运算的运算符号为“&”,两个操作数都是二进制,只有对应的数位都是1时,结果数位才是1 否则为0,

0000 0000 0000 1100
 &0000 0000 0000 1000 
  ---------------------
  0000 0000 0000 1000

2: “位或”运算
“位或”运算的运算符号为“|”,狂歌操作数都是二进制,只有对应数位都是0则为0 否则为1

0000 0000 0000 1100
 &0000 0000 0000 1000 
  ---------------------
  0000 0000 0000 1100

3:“位异或”运算
“位异或”运算的运算符号为“^”,法则是:当两个操作数的二进制表示相同(同时为0或者同时为1 时)结果为0 ,否则为1。

0000 0000 0000 1100
 &0000 0000 0000 1000 
  ---------------------
  0000 0000 0000 0100

4:取反运算:符合~

~0000 0000 0000 1000 
  ---------------------
   1111 1111 1111 0111

5:左移位运算符号:<<

00110000
  ---------------------
    01100000      -----左移一位 (00110000<<1)= 01100000 (48*2)=96
	
	
	00110000
  ---------------------
    11000000      -----左移两位(00110000<<2)= 11000000 (48*2*2)=192

2.7 运算符优先级

规则:优先级高的运算先执行、优先级低的运算后执行,同一优先级的按照从左到右的顺序执行。

运算符

说明

**

幂运算

~、+、-

取反,正负号

*、/、%、//

乘、除、取余、取整

+、-

加、减

<<、>>

左位移,右位移

&

位与运算

^

位异或运算

<、<=、>、>=、!=、==

关系运算符

2.8 基本输入输出

使用input()函数输入

variable = input("提示文字") 其中variable 为保存输入结果的变量、双引号内的文字用于提示输入的内容、tip = input("请输入文字") 

Python3.x 中 需要将输入的字符串进行转换 age = int(input("请输入你的年龄"))

# coding=utf-8
"""
    @功能:根据公示“BMI = 体重/(身高*身高)”计算BMI指数
    @作者:我是土豆又土又逗
    @时间:2020/12/13
"""
#计算BMI值

height = float(input("请输入你的身高(单位m):")) #输入身高
print("您的身高是"+ str(height*100) +"cm")
weight = float(input("请输入你的体重(单位kg):"))#输入体重
print("您的体重是"+ str(weight*2)+"斤" )

bmi = weight/(height*height)                      #用于计算BMI指数公式:BMI=体重/身高的平方
print("您的BMI指数是" + str(bmi))

#判断你的BMI值是否合理

if bmi <18.5:
    print("您的体重过轻 ~@_@~")
elif bmi >= 18.5 and bmi <24.9:
    print("正常范围,注意保持(-_-)")
elif bmi >=24.9  and bmi <29.9:
    print("您的体重过重 ~@_@~")
else:
    print("肥胖 ^@_@^")

使用print()函数输入

>>> a=10
>>> b=6
>>> print(a)
10
>>> print(b)
6
>>> print(6)
6
>>> print(a*b)
60
>>> print( a if a>b else b)
10
>>> print("成功的唯一秘诀,就是坚持到最后一分钟")
成功的唯一秘诀,就是坚持到最后一分钟
>>>

注释:Python中默认情况下,一条print() 语句输出后自动换行,如果想一次输出多行内容且不换行,可以使用print(a,b)

注释:在输出的时候,也可以将输出内容输出到文件里面

fp = open(r'D:\mot.txt','a+')
print("命运给予我们的不是失望之酒,而是希望之杯。",file= fp)
fp.close()

注释:输出不换行:print(“命运给予我们的不是失望之酒,而是希望之杯。”,end = “”)


# coding = utf-8
"""
    @作业要求:编写Python程序,模拟一下场景:
              计算机输出:欢迎使用XXX充值业务,请输入充值金额:
              用户输入100
              计算机输出:充值成功,您本次充值100元

    @时间:2020/12/13
"""

amount = float(input("欢迎使用XXX充值业务,请输入充值金额: "))

print("充值成功,您本次充值"+str(amount)+"元")

# coding = utf-8
"""
    @作业要求:绘制植物大战僵尸中的石头怪
    @时间:2020/12/13
"""
print("""
          * *   * *
        *     *     *
       *   @     @   *
       *             *
       *      @      *
        *           *
          *       *
            *   *
              *
      """)

# coding=utf-8
"""
    @作业要求:实现根据父亲和母亲的身高,预测儿子的身高,并打印出来
     公式为:儿子身高=(父亲的身高+母亲的身高)*054
    @时间:2020/12/13
"""

father_height = float(input("请输入父亲的身高: ")) #输入功能 父亲身高
monther_height = float(input("请输入父亲的身高: "))#输入功能 目前身高

print("预测儿子的身高为:"+str((father_height+monther_height)*0.54))

# coding =utf-8
"""
    @作业要求:输入步数:计算消耗的热量值 假设每走一步消耗28卡路里
    @时间:2020/12/13
"""

foot_nbr = int(input("请输入你的步数: "))

print("您消耗的卡路里是" + str(foot_nbr*28))

本部分练习与补充

Pycharm 常用快捷键方式

1

规范代码PEP8

Ctrl + Alt + L

2

代码上下行移动

shift + alt + 上\下

3

上下行代码选取

shift + alt + 鼠标拖动

4

ctrl + alt + 空格

代码提示

5

移动到本行开头

home

6

移动到本行末尾

end

7

注释代码

ctrl + /

8

复制行

ctrl + d

9

快速执行程序

shift + F10

10

关闭程序控制台

shift + ctrl + F4

  • print() & input() 函数讲解
# coding = utf-8
"""
    @ 功能:演示 print() and input() 函数
    @ 时间:2020/12/18
"""
# input 输入功能:从终端中获取的信息存储到程序(变量)
name = input("请输入的内容,输入的内容显示到控制台:")

# print 打印功能:将括号中的内容,显示到终端
print(name)
- 变量讲解
# coding = utf-8
"""
   @功能:变量
   @时间:2020/12/18
"""
# 语法: 变量名称 = 表达式 e.g: name = "张无忌"
# 语义: 变量名:真实内存地址的别名 赋值号:将右边对象的地址复制给左边的内存空间
# 命名: 必须是字母或下划线开头,后跟字母、数字。下划线,建议:小写字母开头,多个字母之间用下划线分割开 做到:见名知意
# 作用:  在内存中存储数据
name = "张无忌"
name = "赵敏"
print(name)
# 第一种变量复制方式
a01 = a02 = "周芷若"
# 第二种变量复制方式
a03, a04 = "灭绝师太", "金毛狮王"

print(id("周芷若"))
print(id(a01))
print(id(a02))
print(id(a03))
print(id(a04))
- 变量练习
# coding = utf-8
"""
    练习1:变量内存关系
    a = "A"
    b = "B"
    a= b

"""

a = "A"
print(id(a))  # 41043632
b = "B"
print(id(b))  # 35460400
a = b
print(id(a))  # 35460400  将b存储的对象内存地址给a
print(id(b))  # 35460400

b = "C"
print(a)

"""
   练习2 :
   在控制台获取两个变量,然后交换数据,最后显示结果
"""
a01 = int(input("请输入第一个数字:"))  # 10
a02 = int(input("请输入第二个数字:"))  # 8
print("第一个大写字母是:" + str(a01))
print("第二个大写字母是:" + str(a02))
# 第一种方式 交换变量 定义一个新变量进行交换
temp = a02  # 将第二个数赋值给新变量 # 8
a02 = a01  # 将变量a01 值给 a02    # 10
a01 = temp  # 将变量a02 的值给 a01  # 8
# 第一次交换
print("第一次变化")
print("第一个数字是:" + str(a01))  # 8
print("第二个数字是:" + str(a02))  # 10

# 第二种方式 : 通过两数相加之和

a01 = a01 + a02  # 18
a02 = a01 - a02  # 18 - 10
a01 = a01 - a02  # 18 - 8
print("第二次变化")
print("第一个大数字是:" + str(a01))  # 10
print("第二个大数字是:" + str(a02))  # 8
# 第三种方式 :通过异或算法

a01 = a01 ^ a02
a02 = a01 ^ a02
a01 = a01 ^ a02

print("第三次变化")  # 8
print("第一个数字是:" + str(a01))  # 8
print("第二个数字字母是:" + str(a02))  # 10

# 第四种方式 :Python 特殊

a01, a02 = a02, a01
print("第四次变化")  # 8
print("第一个数字是:" + str(a01))  # 10
print("第二个数字字母是:" + str(a02))  # 8
- 核心数据类型讲解
# coding = utf-8
"""
    核心数据类型
    1:None  解除与对象的关联 ,以及占位作用
    2:int   整形(包括正数、负数,0) 字面值 十进制:
    3:float 包含正数,负数,0.0 科学计数法: 1.23e-2 = 1.23/100 = 0.0123 1.23e2 = 1.23*100 = 123
    5:str   字符串
"""
# None
a01 = "苏大强"
a01 = None  # 解除与对象的关联
sex = None  # 占位作用

# int (小整数对象池:CPython 中整数 -5 至 256 ,永远存在小整数对象池中)
num01 = 10  # 十进制
num02 = 0b10  # 二进制 ob开头
num03 = 0o256  # 八进制 0o开头
num04 = 0xA19F  # 十六进制 A = 10 B = 11 C = 12 D = 13 E = 14 F = 15

# float 浮点数
print(1.5) # 小数点数
print(0.00000123) #科学计数发 :表示过大或者过小的值

# 字符串str
print("1.5")


#复数 :由实部和虚部组成

fnbr = 13 + 14j
print(fnbr)

# bool 类型 True/Flase
- 核心数据类型讲解_练习
# coding = utf-8
"""
    功能:算符运算符&增强运算符&数据类型转换 练习
         练习1:再控制台中,录入一个商品单价 再录入一个数量 最后录入金额,计算找回金额
         练习2:在控制台获取分钟、小时、再获取天 计算总秒数
"""
# 练习1:再控制台中,录入一个商品单价 再录入一个数量 最后录入金额,计算找回金额
# unit_price = float(input("请输入物品单价:"))
# price_nbr = int(input("请输入物品数量:"))
# money = float(input("请输入交付的钱:"))
#
# if money < unit_price * price_nbr:
#     print("您输入的金额不够")
# elif money == unit_price * price_nbr:
#     print("不找零,刚刚好")
# else:
#     print("结账金额:" + str(money - unit_price * price_nbr))
#
# #  练习2:在控制台获取分钟、小时、再获取天 计算总秒数
#
# days = int(input("请输入天数:"))
# hour = int(input("请输入小时数:"))
# minute = int(input("请输入分钟数:"))
#
# reslut = days * 24 * 60 * 60 + hour * 60 * 60 + minute * 60
# print("总秒数是:" + str(reslut))
#
# # 练习3:古代的秤一斤 16 两  练习:在控制台中获取两计算是几斤零几两
# unit_of_liang = float(input("请输入两数:"))
# # 古代的秤一斤 16
# unit_of_jin = unit_of_liang // 16
# print("总重量是:" + str(unit_of_jin) + "斤,零" + str(unit_of_liang % 16) + '两')
# """
# 练习4 : 在控制台中录入距离,时间,初速度,计算加速度 (匀变速直线运动的位移与时间公式)
#        加速度 = (距离 - 初速度 * 时间) * 2 / 时间的平方
# """
# distance = float(input("请输入距离:"))
# time = float(input("请输入时间:"))
# inital_v = float(input("请输入初速度:"))
# accelerated = (distance - time * inital_v) * 2 / time ** 2
# print("加速度是:" + str(accelerated))

# 练习 : 在控制台中录入一个四位整数 1234 计算每位相加和 显示结果

number = int(input("请输入一个四位正整数:"))
the_unit = number % 10  # --个位
decade = (number / 10) % 10  # --十位
hundreds = (number / 100) % 10  # --百位
kilobit_kb = number // 1000  # --千位
print("个位 %d,十位 %d,百位 %d,千位 %d" % (the_unit, decade, hundreds, kilobit_kb))
print("四位数相加之和:" + str(int(the_unit + decade + hundreds + kilobit_kb)))
# --方法2
# --个位
result = number % 10
# --十位
result += number // 10 % 10
# --累加百位
result += number // 100 % 10
# --累加千位
result += number // 1000
print("累加之和是:"+str(result))
比较运算符&逻辑运算
# coding = utf-8
"""
    bool
    运算符  比较运算符(> < >= <= == != ), 结果都是 bool 类型
           逻辑运算符(与或非) and or not

"""
# bool 类型
# 取值:(真,对的)True (假,错的) False
# print(1 > 2)
# # 逻辑运算符
# # and 一假具假
# print(True and True)
# print(True and False)
# print(False and True)
# print(False and False)
# # or  一真即真
# print(True or True)
# print(True or False)
# print(False or True)
# print(False or False)
#
# # not 非 取反
# print(not True )

"""
    联系判断是否是闰年:闰年能被4整除 但是不能被 100整除 或着能整除400
"""

year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(str(year) + "是闰年")
else:
    print(str(year) + "不是闰年")
HOMEWORK
# coding = utf-8

"""
day02 作业:
3. 画出下列代码内存图
a = 1000
b = a
a = 5000
print(b)# ?
4. 已知:加速度,初速度,时间
  计算:距离
  加速度 = (距离 - 初速度 × 时间) * 2 / 时间平方
5. 温度
  摄氏度 = (华氏度 - 32) / 1.8
  华氏度 = 摄氏度 * 1.8  + 32
   开氏度= 摄氏度 + 273.15
   (1)在控制台中获取华氏度,计算摄氏度。
   (1)在控制台中获取,计算华氏度。
   (1)在控制台中获取摄氏度,计算开氏度。
6. 看书:python入门到实践:阅读前两章.
        程序员的数学,阅读第三章。
7.(扩展)在控制台中获取总秒数,计算几小时零几分钟零几秒。
#
#
#
# """
#
# # 练习1:
# a = 1000
# b = a
# a = 5000
# print(b)  # 1000
#
# # 练习已知:加速度,初速度,时间  计算:距离 加速度 = (距离 - 初速度 × 时间) * 2 / 时间平方
# # (距离 ) = 加速度 * 时间平方 /2 + 初速度 × 时间
# inital_v = float(input("请输入初速度:"))
# times = int(input("请输入时间:"))
# accelerated = float(input("请输入加速度:"))
# distance = accelerated * times ** 2 / 2 + inital_v * times
# print("距离是:"+str(distance))
#
# """
# 5. 温度
#   摄氏度 = (华氏度 - 32) / 1.8
#   华氏度 = 摄氏度 * 1.8  + 32
#    开氏度= 摄氏度 + 273.15
#    (1)在控制台中获取华氏度,计算摄氏度。
#    (1)在控制台中获取,计算华氏度。
#    (1)在控制台中获取摄氏度,计算开氏度。
# """
# # (1)在控制台中获取华氏度,计算摄氏度。
# fahrenheit = float(input("请输入华氏度:"))
# degree_centigrade = (fahrenheit - 32) / 1.8
# # print("摄氏度:"+ str(degree_centigrade))
#
# # (1)在控制台中获取,计算华氏度。
# degree_centigrade = float(input("请输入摄氏度:"))
# print("华氏度:" + str(degree_centigrade * 1.8 + 32))
# # (1)在控制台中获取摄氏度,计算开氏度。
# degree_centigrade = float(input("请输入摄氏度:"))
# kelvin = (degree_centigrade - 32) / 1.8
# print("开氏度:" + str(kelvin))


"""
7.(扩展)在控制台中获取总秒数,计算几小时零几分钟零几秒。
"""

second = int(input("请输入总秒数:"))
hour = second // (60 * 60)  # 小时
minute = second // 60 - hour * 60  # 分钟
second = second - hour * 60 ** 2 - minute * 60 # 秒数
print(str(hour)+"小时,零"+str(minute)+"分钟,零"+str(second)+"秒")
print("整体时间是 %d 小时、零 %d 分钟、零 %d 秒"% (hour,minute,second))

1. 身份运算符

符号

含义

is

变量1 is 变量2 —> 本质通过id()函数进行判断,是否是同一个对象

not is

变量1 not is 变量2 —> 本质通过id()函数进行判断,是否是同一个对象

# coding = utf-8
"""
 身份运算符
  id() 获取对象内存地址
  "is" 变量1 is 变量2 ---> 本质通过id()函数进行判断,是否是同一个对象
  "not is" 变量1 not is 变量2 ---> 本质通过id()函数进行判断,是否是同一个对象
 """
a = 800
b = 1000
print(id(a))
print(id(b))
print(a is b)

c = a
print(id(c))
print(c is a)

d = 1000
print(d is b)

"""
    小整数对象池:
"""
# 交互式Python中 b is d ---> False
# 文件式Python中 b is d ---> True
# ---大于256 小对象池 在交互式 显示 True
e = 1
f = 1
print(e is f)  # ----> True