文章目录
python第一章
第一个python程序
python程序的文件以.py结尾
python程序的文件名以后最好不要有中文
何为交互模式,何为命令模式?
交互模式
在Windows系统上按下win键+R键输入cmd打开黑屏终端
黑屏终端输入 python 进入交互模式
C:\Users\Administrator>python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
输入 exit() 退出交互模式
>>> exit()
C:\Users\Administrator>
命令模式
输出 将引号内的字符串输出到黑屏终端上
在E盘创建一个文件夹python,在文件夹中创建一个以.py结尾的文件(文件名自己命名),输入下列代码
print("This is the first Python program")
执行 进入程序所在目录,执行 python 文件名
C:\Users\Administrator>python "E:\python\the first python program.py"
This is the first Python program
注释
单行注释
#
只能注释一行
多行注释
根据对象的引用计数器,对象创建会给对象一个引用计数器属性,如果该属性的值为0,那么该对象会被释放。创建了一个字符串对象,但是没有任何的引用,所以计数器为0。
'''
print("hello world!")
print("这两行是多行注释!")
'''
print("上面两行是注释,看不到!")
或者
"""
print("hello world!")
print("这两行是多行注释!")
"""
print("上面两行是注释,看不到!")
我们分别来执行这两个
命名为1notes.py
C:\Users\Administrator>python E:\python\1notes.py
上面两行是注释,看不到!
命名为2notes.py
C:\Users\Administrator>python E:\python\2notes.py
上面两行是注释,看不到!
输入与输出
输出:打印到屏幕上一些信息
可以接受多个字符串,用逗号分隔
切记:在写python程序时切记不要使用中文字符
print("hello world!")
输入:从外部获取变量的值
input:阻塞,等待输入
name = input()
telephone = input()
print("---------------------")
print(name)
print("---------------------")
print(telephone)
命名为output and lnput.py
C:\Users\Administrator>python "E:\python\output and lnput.py"
hello world!
natasha
12345678901
---------------------
natasha
---------------------
12345678901
Python数据类型
数据类型:计算机存储或处理的数据可以是各种类型,比如文本、图形、音频、视频等等。所以需要不同的数据类型的变量
-
Number(数字)
- 整数
- 浮点数
- 复数
-
String(字符串)
"hello world"
'hello world'
- Boolean(布尔值)
表示真假的值
-
None(空值)
-
list(列表)
-
tuple(元组)
-
dict(字典)
-
set(集合)
标识符
标识符的作用:给变量、函数等命名的
什么是标识符:是一串字符串(注意:字符串未必是标识符)
标识符的规则:
-
只能由字母、数字、下划线组成
-
开头不能是数字
-
不能是python的关键字
可使用代码来查看python的关键字
import keyword print(keyword.kwlist)
执行结果为
C:\Users\Administrator>python E:\python\Keyword.py ['False', 'None', 'True', 'and', 'as', 'assert', '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']
-
区分大小写
-
见名知意
注意:在python3中,非ASCII标识符也是允许的了(但是慎用)
啊啊啊 = "aaa"
print(啊啊啊)
执行结果:
C:\Users\Administrator>python E:\python\aaa.py
aaa
虽然语法没有报错,但是不合理,以后不要使用
变量
-
程序可操作的存储区名称
-
程序运行过程期间能改变的数据
-
每个变量都有特定的类型
作用:将不同类型的数据存储到内存
定义变量:变量名 = 数据值
注意:变量在使用前必须先定义,否则会出现错误
# num = 170305333
print("num =", num)
如果这样程序就会报错
C:\Users\Administrator>python E:\python\variable.py
Traceback (most recent call last):
File "E:\python\variable.py", line 2, in <module>
print("num =", num)
NameError: name 'num' is not defined
在这里python会清晰的、友好的提醒你在第二行这个num没有定义,之后我们去把#
去掉,再执行
C:\Users\Administrator>python E:\python\variable.py
num = 170305333
删除变量:del 变量名
注意:删除后变量无法引用
num = 170305333
print("num =", num)
del num
print("num =", num)
执行结果如下:
C:\Users\Administrator>python E:\python\variable.py
num = 170305333
Traceback (most recent call last):
File "E:\python\variable.py", line 4, in <module>
print("num =", num)
NameError: name 'num' is not defined
很显然第三行删除了变量,导致第四行执行报错
常量
何为常量:
程序运行期间不能改变的数据
表达式
- 由变量、常量和运算符组成的式子称为表达式
- 阅读表达式:
- 阅读表达式的功能
- 阅读表达式的值
运算符
算术运算符:
+ - * / % ** //
加 减 乘 除 取模 求幂 取整
算术运算表达式:
功能:进行符号对应的算术运算,不会修改变量的值
值:相关算术运算的结果
num1 = 10
num2 = 3
print("加", num1 + num2)
print("减", num1 - num2)
print("乘", num1 * num2)
print("除", num1 / num2)
print("取模", num1 % num2)
print("求幂", num1 ** num2)
print("取整", num1 // num2)
执行结果:
C:\Users\Administrator>python E:\python\Count.py
加 13
减 7
乘 30
除 3.3333333333333335
取模 1
求幂 1000
取整 3
赋值运算符
赋值运算符 =
赋值运算表达式
格式:变量 = 表达式
功能:计算右侧表达式的值,并赋值给等号左侧的变量
值:赋值结束后变量的值
num3 = 10
num4 = num3 + 2
print(num3)
print(num4)
执行结果:
C:\Users\Administrator>python E:\python\assignment.py
10
12
复合运算符
+= -= *= /= %= **= //=
a += b --> a = a + b
a -= b --> a = a - b
a *= b --> a = a * b
a /= b --> a = a / b
a %= b --> a = a % b
a **= b --> a = a ** b
a //= b --> a = a // b
位运算符
&
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位结果为1,否则为0
|
按位或运算符:参与运算的两个值,如果两个相应位有一个为1时,则该位结果为1,否则为0
^
按位异或运算符:参与运算的两个值,如果两个相应不同时,则该位结果为1,否则为0
~
按位取反运算符:对数据的每个二进制位进行取反操作,把1变为0,把0变为1
<<
左移运算符:运算数的各二进制全部左移若干位,由<<右侧数字指定移动位数,高位丢弃,低位补0
>>
右移运算符:运算数的各二进制全部右移若干位,由>>右侧数字指定移动位数
print("按位与运算符", 5 & 7)
print("按位或运算符", 5 | 7)
print("按位异或运算符", 5 ^ 7)
print("按位取反运算符", ~5)
print("左移运算符", 2 << 2)
print("右移运算符", 11 >> 2)
执行结果:
C:\Users\Administrator>python E:\python\position.py
按位与运算符 5
按位或运算符 7
按位异或运算符 2
按位取反运算符 -6
左移运算符 8
右移运算符 2
if语句
格式:
if 表达式:
语句
逻辑:
当程序运行到if语句时,首先计算“表达式”的值,如果表达式的值为真,则执行“语句”,如果表达式的值为假,则结束if语句继续向下执行
何为真假?
假:0 0.0 '' None False
真:除了假就是真
例如
if 0:
print("hello,world!")
if-else语句
格式:
if 表达式:
语句1
else:
语句2
逻辑:
当程序运行到if-else语句时,首先计算“表达式”的值,如果表达式的值为真,则执行语句1。如果表达式的值我假,则执行语句2
flag = int(input("请输入0或者1:"))
if flag:
print("hello world!")
else:
print("world hello!")
关系运算符与关系运算表达式
关系运算符
== != > < >= <=
等于 不等于 大于 小于 大于等于 小于等于
关系运算表达式
格式:表达式1 关系运算符 表达式2
功能:计算表达式1和表达式2的值
值:
如果关系成立,则整个关系运算表达式的值为真,如果关系不成立,则整个关系运算表达式的值为假
if 1==1:
print("This is an apple.")
逻辑运算符
逻辑与 逻辑或 逻辑非
逻辑与
逻辑与符号:and
逻辑与运算表达式
格式:表达式1 and 表达式2
功能:首先计算“表达式1”的值,若表达式1的值为真则计算“表达式2”的值
值:
1、如果表达式1的值为真,表达式2的值为真,则逻辑与运算表达式的值为真
2、如果表达式1的值为真,表达式2的值为假,则逻辑与运算表达式的值为假
3、如果表达式1的值为假,表达式2的值为真,则逻辑与运算表达式的值为假
4、如果表达式1的值为假,表达式2的值为假,则逻辑与运算表达式的值为假
总结:有一个为假就为假
a = 2
b = 1
if a - 1 and b + 1:
print("This is an apple.")
else:
print("This is a banana.")
逻辑或
逻辑或符号:or
逻辑或运算表达式
格式:表达式1 or 表达式2
功能:首先计算“表达式1”的值,如果表达式1的值为假,则继续计算“表达式2”的值
值:
1、如果表达式1的值为真,表达式2的值为真,则逻辑或运算表达式的值为真
2、如果表达式1的值为真,表达式2的值为假,则逻辑或运算表达式的值为真
3、如果表达式1的值为假,表达式2的值为真,则逻辑或运算表达式的值为真
4、如果表达式1的值为假,表达式2的值为假,则逻辑或运算表达式的值为假
总结:有一个为真就为真
c = 2
d = 1
if c - 1 or print("123"):
print("This is an apple.")
else:
print("This is a banana.")
逻辑与、逻辑或的特性
短路原则:
表达式1 and 表达式2 and 表达式3 and …… and 表达式n
从左至右依次计算表达式的值,直到遇到某个表达式的值为假就停止计算
表达式1 or 表达式2 or 表达式3 or …… or 表达式n
从左至右依次计算表达式的值,直到遇到某个表达式的值为真就停止计算
逻辑非
逻辑非符号:not
逻辑非运算表达式
格式:not 表达式
值:
1、如果“表达式”的值为真,则逻辑非运算表达式的值为假
2、如果“表达式”的值为假,则逻辑非运算表达式的值为真
总结:颠倒黑白
e = 1
if not e:
print("This is an apple.")
else:
print("This is a banana.")
成员运算符
格式: x in seq x not in seq
in:如果在指定的序列中找到值则返回真,否则返回假
not in:如果在指定的序列中没有找打值则返回真,否则返回假
身份运算符
格式: obj1 is obj2 obj1 is not obj2
is:判断两个标识符是否引用同一个对象,相同返回真,否则返回假
is not:判断两个标识符是否引用不同对象,不同返回真,否则返回假
运算符的优先级
** 指数
~ + - 按位取反和一元加减号
* / % //
+ - 加法减法
<< >>
&
| ^
< > <= >=
== != <>
= *= /= %= //% += -= **=
is is not
in not in
and or not
练习
1.从控制台输入一个数字,如果是偶数则输入出偶数,否则输出奇数
num1=int(input("请输入一个数字:"))
if num1 % 2 == 0:
print("您输入的是偶数!")
elif num1 % 2 == 1:
print("您输入的是奇数!")
else:
print("您输入的不是数字!")
2.从控制台输入一个5位数,判断是否位回文数(12321)
num2=int(input("请输入一个5位数的数字:"))
w = num2 // 10000 # 1
q = num2 // 1000 % 10 # 2
b = num2 // 100 % 10 # 3
s = num2 // 10 % 10 # 2
g = num2 % 10 # 1
if w + 1 != q:
print(num2, "不是回文数!")
if q + 1 != b:
print(num2, "不是回文数!")
if b - 1 != s:
print(num2, "不是回文数!")
if s - 1 == g:
print(num2, "是回文数!")
else:
print(num2, "不是回文数!")
3.从控制台输入一个3位数,判断是否是水仙花数
另:三位的水仙花数共有4个:153,370,371,407;
#3.从控制台输入一个3位数,判断是否是水仙花数
#三位的水仙花数共有4个:153,370,371,407;
num3=int(input("请输入一个三位数的数字:"))
bai = num3 // 100 # 1
shi = num3 // 10 % 10 # 5
ge = num3 % 10 # 3
num4 = bai ** 3 + shi ** 3 + ge ** 3
if num3 == num4:
print(num3,"是水仙花数!")
else:
print(num3, "不是水仙花数!")