Python 笔记

Posted 童话与梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 笔记相关的知识,希望对你有一定的参考价值。

以前学py的时候做的笔记,以此检索

文章目录

1、计算机组成原理和python基础知识

1.1、计算机组成原理

1.2、编程语言和python

1.3、使用pycharm编写第一个程序

1.3.1、新建工程

在这里插入图片描述

1.3.2、新建.py文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OMxTbD3p-1620829756861)(C:\\Users\\fairy\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200731095857872.png)]

1.3.3、运行python程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fHj19Aga-1620829756863)(C:\\Users\\fairy\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200731100122990.png)]

1.4、注释

1.4.1、单行注释

以 # 开头

print("hello world")#单行注释
单行注释快捷键 CTRL + /

1.4.2、多行注释

以 “““ 开头 以 ””” 结尾 (单引号也可以)

"""
多行注释1
多行注释2
"""

print("hello world")

'''
多行注释3
多行注释4
'''

1.5、标识符 和 关键字

1.5.1、标识符

命名规则:以数字、字母、下划线组成,并且数字不能开头。

大小写敏感。

不能使用python内置关键字

命名习惯:见名知意

​ 大(小)驼峰命名法

以下划线来区分单词

PEP8 python 命名规则

1.5.2、关键字

'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'

1.6、变量以及类型

变量的作用:存储数据

1.6.1、变量的定义

需符合标识符命名规则

# 第一步,定义变量。语法 : 变量名 = 值
my_name = "fairy"
message = "hello world"

# 第二部,使用变量
print(my_mane)
print(message)

1.6.2、变量的类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AANTH8QB-1620829756864)(C:\\Users\\fairy\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200731112435387.png)]

python不需要程序员指定数组类型,CPU自动识别。

可用type查看变量的数据类型

age = 20
print(type(age))
#输出 :<class 'int'>
快速复制快捷键 CTRL + D

1.7、输出语句

1.7.1、格式化输出

age = 20
name = "fairy"
weight = 104.65

print("我的姓名是%s,我的年龄是%d,我的体重是%.1f。" % (name, age,weight))

#输出 我的姓名是fairy,我的年龄是20,我的体重是104.7。

%.1f 保留一位小数 ,多余位 四舍五入

1.7.2、关于换行输出

python的print语句默认自带换行,即end = ‘\\n’ 。可以人为修改。

print(11111)
print(22222)
#输出 
#   11111 
#   22222

print(11111,end=' ')#引号中间是空格
print(22222)
#输出 11111 22222

1.8、输入语句

1.8.1、input()

输入的数据都是字符串

#语法: input ("提示信息")
#特点:输入的数据类型均为 字符串 str
#举例:

age = input("input your age")

print(age)

print(type(age))

#输出 input your age20
#    20
#    <class 'str'>

1.9、数据类型转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DjMUcahb-1620829756865)(C:\\Users\\fairy\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200804165655290.png)]

str1 = '1'
str2 = '1.1'
num = 10

# 1、int()
# 将括号里的转换成整型
print(type(int(str1)))
# 2、int()
# 将括号里的转换成浮点型
print(type(float(str2)))
# 3、str()
# 将括号里的转换成字符串
print(type(str(num)))
# 4、eval() 
# 将字符串数据恢复成字符串里面的类型,相当于去掉引号
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(num)))  #错误,只针对字符串

'''
输出
<class 'int'>
<class 'float'>
<class 'str'>

<class 'int'>
<class 'float'>
'''

1.10、运算符

1.10.1、算术运算符

加、减、乘、除、整除、取余、指数

num1 = 9
num2 = 2
num3 = 3

print(num1 + num2)		#11		加法
print(num1 - num2)		#7		减法
print(num1 * num2)		#18		乘法
print(num1 / num2)		#4.5	除法
print(num1 // num2)		#4		整除

print(num1 % num2)		#1		取余
print(num1 ** num2)		#81		指数

print(num1 / num3)		#3.0	除法运算的结果都是整数

1.10.2、赋值运算符

a, b, c = 1, 2, 3	#依次对应赋值
print(a)		#1
print(b)		#2
print(c)		#3

1.10.3、复合赋值运算

-=
+=
*=
/=
%=

1.10.4、比较运算符

>
<
>=
<=
==
!=

1.10.5、逻辑运算符

and		#逻辑与
or		#逻辑或
not		#逻辑非

2、判断语句 和 循环语句

2.1、if 条件语句

作用:条件判断、流程控制

2.1.1、if 语句

'''
if 条件:
	条件为真执行的代码
'''
if True :
    print("The condition is True")

2.1.2、Debug工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mt9Xm3rP-1620829756866)(C:\\Users\\fairy\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200801095744552.png)]

2.1.3、if…else…语句

'''
if 条件:
    条件为真执行的代码
else:
    条件为假执行的代码
'''

2.1.4、if…elif…else…语句

'''
if condition1:
	code 1
elif condition2:
	code 2
elif condition3:
	code 3
else:
	code 4
'''

score = int(input("Please input your score:"))

if 90 <= score <= 100:
    print("Your grade is A")

elif 80 <= score <= 90:
    print("Your grand is B")

elif 70 <= score <= 80:
    print("Your grand is C")

elif 60 <= score <= 70:
    print("Your grand is D")

else:
    print("Your grand is E")

2.1.5、if 嵌套

if ticket == 1:
    print("Oh,that is great!")
    seat = int(input("Are there any seats on the bus?(1 or 0)"))
    if seat == 1:
        print("OK,you can seat in your seat.")
    else:
        print("All right,you have to stand.")
else:
    print("Emm,that is pity!")

2.1.6、三目运算符

化简 if … else …

'''
代码格式
条件为真执行的代码 if 条件 else 条件为假执行的代码

要求
代码最好是一条语句,多了不好
'''

age = int(input('input your age'))
print("It is Ok!") if age >= 18 else print("It is NOT OK!")

2.1.7、小案例:石头剪刀布

要求:玩家输入数字代表石头剪刀布的一种,电脑随机输出。然后判断输赢

#石头1 、剪刀2、布3、
print("石头1 、剪刀2、布3")

#玩家出拳
player = int(input("It is your turn.Input:"))

#电脑出拳
computer = 1

#判定输赢
if player == computer:
    print("your is %d,and the computer is %d" % (player, computer))
    print("It ends in a draw.")
elif (player == 2 and computer == 1) or (player == 3 and computer == 2) or (player == 1 and computer == 3):
    print("your is %d,and the computer is %d" % (player, computer))
    print("The computer win.")
else:
    print("your is %d,and the computer is %d" % (player, computer))
    print("The player win!")

2.1.8、随机数

1、导入 random 模块

2、使用 randint 功能实现随机数

import random
num = random.randint(1, 5)#范围:1~5

2.2、循环语句

2.2.1、while 语法

'''
while 条件:
	条件为真循环的代码
'''

while True:
    print("It is True.")

2.2.2、while 配合计数器

i = 0			#初始值
while i <= 5:	 #最大值
    print("This is %d" % i)
    i += 1		#自增量

2.2.3、while循环应用

# 求 1+2+3+...+100 = ?

i = 1
sum = 0
while i <= 100:
    sum += i
    i += 1
print("The sum is %d." % sum)
# 求 2+4+6+...+100 = ?

# way 1
i = 1
sum = 0
while i <= 100:
    if i % 2:
        #pass 可跳过
        sum += i
    i += 1
print("The sum is %d." % sum)

# way 2

j = 2
j_sum = 0
while j <= 100:
    j_sum += j
    j +=2
print("The j_sum is %d" % j_sum)

2.2.4、while 循环嵌套

while 条件1:

​ 条件1真执行的代码

​ while 条件2:

​ 条件2真执行的代码

# 嵌套循环输出 九九乘法表
i = 1
while i <= 9:
    j = 1
    while i >= j:
        print("%2dX%-2d=%2d" % (i, j, i*j), end='\\t')
        j += 1
    i += 1
    print("\\n", end=' ')

3、循环 & 容器类型

3.1、循环

3.1.1、for 循环

作用:一般配合容器类型,用来遍历整个容器类型

语法:
for 临时变量 in 列表或者字符串等可迭代对象
	循环满足条件时执行的代码
str1 = "asd jkl"
for char in str1:
    print(char)
#输出七行字符

3.1.2、range()

作用:函数,生成一个整数数据的可迭代对象(整数数据的序列)

语法:range(开始数字,结束数字,步长)

即可生成左闭右开的数据。

开始数字可省略,则默认从0开始

步长可以省略,则默认为1

生成的序列不包含结束数字

for num in range(1, 10, 1):
    print(num)
# 输出1~~9
for num in range(1, 10):
    print(num)
# 输出1~~9
for num in range(10):
    print(num)
# 输出0~~9
print(range(1, 10, 1))  # 在Python3中, range打印结果(内存存储)为一个序列, 为的是节省内存的开销

3.1.3、break & continue

作用:在循环中,满足一定条件时退出循环的两种方式

str1 = "abcdefg"
for i in str1:
    if i == "d":
        break
    print(i)
# 输出 abc

for i in str1:
    if i == "d":
        continue
    print(i)
# 输出 abcefg (没有d)

3.1.4、循环的 else

作用:当循环正常结束(不是被break结束)后执行 else 下方缩进的代码

例如循环输入密码,正确了break,如果循环次数都用完了还不对,就执行else下面的锁定账号的代码

user_A_name = 'aaa'
user_A_password = 123456
bingo_captcha = 'qwer'

times = 1

print("***用户登陆系统***")
while times <= 5:
    #用户输入
    user_name = input("请输入用户名:")
    user_password = int(input("请输入密码:"))
    user_captcha = input("请输入验证码:")
    print("\\n***登陆中***\\n")
    #判断验证码

    if user_captcha != bingo_captcha:
        print("验证码错误!\\n*登陆失败*")

    else:
        print("验证码正确!")
        if user_name == user_A_name:
            print("用户名正确!")
            if user_password == user_A_password:
                print("密码正确!\\n*****登陆成功*****")
                break
            else:
                print("密码错误!\\n***登陆失败***")
        else:
            print("用户名错误!\\n***登陆失败***")
    times += 1
else:
    print("\\n===账号已锁定===")

3.2、容器类型——字符串

容器类型——字符串、列表、元组、字典 之 字符串

3.2.1、字符串简介

带引号(双引号和单引号都可以,甚至六个引号也行)的数据都是字符串,数据类型是 str

str1 = '''This
is
a
str'''
print(str1)
# 仅六个的支持换行

3.2.2、f-string 格式化字符串

语法:f"…{变量/表达式}…"

name = "fairy"
age = 20

print(f"My name is {name}, and I am {age} years old.")#更简洁
print("My name is %s, and I am %d years old." % (name, age))

3.2.3、字符串的输入

3.2.4、下标 和 切片

下标就是标号,也叫索引。计算机内存会为字符串中的每个字符从0开始分配下标。用于快速查找字符

# 语法:变量名[下标]

str1 = "fairy"

print(str1[0])		#f
print(str1[1])		#a
print(str1[2])		#i
print(str1[3])		#r
print(str1[4])		#y
print(str1[5])		#下标越界,错误

切片

作用:选取一部分数据

语法:变量名[开始位置下标**:结束位置下标:**步长] <左闭右开>

str2 = "0123456789"
print(str2[1:7:1])	# 输出 123456
print(str2[1:7])	# 输出 123456	默认步长为1
print(str2[1:7:2])	# 输出 135	
print(str2[2:])		#输出23456789	省略步长、结束,则从开始到结束

print(str2[:])		#全部输出
print(str2[::])		#全部输出

print(str2[::以上是关于Python 笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python 3学习笔记

Python Tornado初学笔记之表单与模板

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort