python入门篇(持续日更,未完结)

Posted 是璇子鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python入门篇(持续日更,未完结)相关的知识,希望对你有一定的参考价值。

前言

python入门篇,是博主结合暑期实训的学习,对python常用操作的汇总整理,偏向于个人的学习笔记。
在这里插入图片描述
python入门学习网站推荐:

  • 菜鸟教程(简单易懂,很适合零基础入门)
    在这里插入图片描述

  • 廖雪峰-python教程(清晰明了,部分知识点比菜鸟教程难些,也很适合python入门学习)
    在这里插入图片描述

  • CSDN平台内的python入门博客(有很多写得通俗易懂而系统便于学习的博客教程,可多看看选择最适合自己的)

1 Python简介

python下载及安装

下载地址:python官网
在这里插入图片描述
点击Downloads,选择自己喜好的版本即可

建议使用executable installer和安装非当前最新版本,因为最新版本往往有着不太稳定和部分报错难以搜索解决的缺点。
在这里插入图片描述

测试是否安装成功

  • windows键(窗口形状,由四个方块组成)+R
  • 在弹出窗口输入’cmd’
    在这里插入图片描述
  • 再输入python,显示如下即安装成功(最后输入exit()退出)
    在这里插入图片描述

Pycharm的安装

Python本身是一种交互式操作,类似于一问一答,很适合学习/验证python语法或者局部代码,但也存在着代码不能保存、无法运行太大程序的缺点。故需要安装python的集成开发环境——pycharm,以便于更复杂多样的代码书写需求。

下载地址:pycharm官网
在这里插入图片描述

使用Pycharm编写第一个Python程序

  1. 运行Pycharm,选择Create New Project,创建一个新的Python工程。
    在这里插入图片描述
  2. 选择’Pure Python’创建一个新的纯Python工程项目,Location表示该项目的保存路径,Interpreter 用来指定Python计时器的版本。
    在这里插入图片描述
  3. 右击项目(project),选择New,再选择Python File
  4. 在弹出的对话框中输入的文件名mycode,点击OK,表示创建一个Python程序的文本文件,文本文件后缀名默认.py
    在这里插入图片描述
  5. 在新建的mycode.py文件里,输入以下代码,并在空白处右键选择Run运行,表示输出一段hello world字符串。
  6. 运行成功后,Pycharm Console窗口将显示我们的输出结果。(↙)
    在这里插入图片描述

为便于使用,建议可先建立新目录,再在子目录下进行小模块代码的书写与保存

  • 皮肤设置(File - settings - Appearance&Behavior - Appearance)
    在这里插入图片描述
  • 字体设置(File - settings - Editor - Font)
    在这里插入图片描述
    国内常用的pip下载源列表:
  • 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学
  • https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban)
  • http://pypi.douban.com/simple/ 清华大学
  • https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学
  • http://pypi.mirrors.ustc.edu.cn/simple/

一些实用的快捷键

  1. ctrl+d 快速复制一行或选中区域的几行
  2. ctrl+shift+F10 (py.file执行快捷键)
  3. ctrl+? 快速注释选中区域
  4. 光标选中函数后点击ctrl,即可调出函数的详细说明

Debug操作

该操作使我们能观察到代码每步运行后的情况,以便于查找错误和调试代码

  1. 点击待调试代码的前端,出现小红点表示选中
    在这里插入图片描述
  2. 点击pycharm↗小蜘蛛,或右键——Debug
    在这里插入图片描述
  3. 使用F8快捷键,或点击如图折现按钮,即可进行调试
    在这里插入图片描述

关于注释

单行注释

#单行注释,不执行

多行注释:以’’‘开始,并以’’'结束

'''
                               _ooOoo_
                              o8888888o
                              88" . "88
                              (| -_- |)
                              O\\  =  /O
                           ____/`---'\\____
                         .'  \\\\|     |//  `.
                        /  \\\\|||  :  |||//  \\
                       /  _||||| -:- |||||-  \\
                       |   | \\\\\\  -  /// |   |
                       | \\_|  ''\\---/''  |   |
                       \\  .-\\__  `-`  ___/-. /
                     ___`. .'  /--.--\\  `. . __
                  ."" '<  `.___\\_<|>_/___.'  >'"".
                 | | :  `- \\`.;`\\ _ /`;.`/ - ` : | |
                 \\  \\ `-.   \\_ __\\ /__ _/   .-` /  /
            ======`-.____`-.___\\_____/___.-`____.-'======
                               `=---='
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                       佛祖保佑        永无BUG
              佛曰:
                     写字楼里写字间,写字间里程序员;
                     程序人员写程序,又拿程序换酒钱。
                     酒醒只在网上坐,酒醉还来网下眠;
                     酒醉酒醒日复日,网上网下年复年。
                     但愿老死电脑间,不愿鞠躬老板前;
                     奔驰宝马贵者趣,公交自行程序员。
                     别人笑我忒疯癫,我笑自己命太贱;
                     不见满街漂亮妹,哪个归得程序员?
'''

2 变量及类型

变量及类型

# 变量 = 值; 将右侧的值放入左侧的容器中
bing = 'elephant'

#两边不对等(注意*的作用)
b1, b2, *b3 = 'a', 'b', 'c', 'd', 'e'
print(b1, b2, b3)

b1, *b2, b3 = 'a', 'b', 'c', 'd', 'e'
print(b1, b2, b3)

运行结果

a b ['c', 'd', 'e']
a ['b', 'c', 'd'] e

变量没有类型,数据才有类型

'''
数值类型      example
    整型      age = 18
    浮点型    salary = 17.32
字符串        book = 'little prince'
布尔类型      True & False 首字母大写
列表          classroom = [21, 7, 'hello', True, [212,323]]
元组          weather = ('Wuhan', 30)
字典          content = {'name':'xiaoming', 'height':'172cm', 'hobby':'running'}
'''

变量的取名

命名规则:

  1. 标识符由字母、下划线和数字组成,且数字不能开头。
  2. 严格区分大小写
  3. 不能使用关键字。(pycharm中蓝色高亮部分)

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

驼峰命名法:

  • 小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
  • 大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:FirstName、LastName.

输出

print('hello world') #一般输出
user = 'ZhangSan'
print('hello %s' % user) #格式化输出
age = 17
print('%s is %d years old' % (user, age))

运行结果:

hello world
hello ZhangSan
ZhangSan is 17 years old

常用格式符号
在这里插入图片描述

换行输出

print('=======我的名片=======')
print('姓名:%s\\nQQ: %d\\n手机号: %d\\n公司地址: %s' % (name, QQ, tel, address))
print('======================')

结果输出:

=======我的名片=======
姓名:chris
QQ: 2736368065
手机号: 159654538769
公司地址: Wuhan
======================

边框简化写法(效果与上同):

print('='*7 + '我的名片' + '='*7)
print('姓名:%s\\nQQ: %d\\n手机号: %d\\n公司地址: %s' % (name, QQ, tel, address))
print('='*20)

输入

password = input("请输入密码:") #接收用户输入
print('您刚刚输入的密码是:%s' % password)

输出结果:
在这里插入图片描述
注意,这里不管我们输入什么类型的数据,最终的结果都是字符串(%s)

print(type(password))
<class 'str'>

类型转换

常见类型转换
在这里插入图片描述
实例:

num1 = '545'
print(type(num1))

num2 = 345
print(type(num2))

# print(num1 + num2)   TypeError: can only concatenate str (not "int") to str
print(int(num1) + num2)
print(num1 + str(num2))

输出结果:

<class 'str'>
<class 'int'>
890
545345

关于布尔值

#为假的情况
#整形的 0
#浮点型的 0.0
#空白字符串''转成假    ‘ ’代表空格与空白是两个意思
#空列表 []
#空元组 ()
#空字典 {}
#空集合 set()

以上情况为假,其余为真

示例

print(bool(set()))
print(bool(0.0))

结果

False
False

其他类型转换
在这里插入图片描述

3 运算符

算术运算符

在这里插入图片描述

示例:

num1 = int(input('the 1st number:')) #input最终的数据类型是字符串
num2 = int(input('the 2nd number')) #因此需要转成整型
#加
print(num1 + num2)
#商
print(num1/num2)
#取余
print(num1 % num2)
#整除
print(num1//num2)
#指数
print(num1**num2)

结果:

the 1st number:3
the 2nd number7
10
0.42857142857142855
3
0
2187

比较运算符

比较运算符返回结果一定是布尔类型
一个等号是赋值,’=='表判断是否相等
在这里插入图片描述
示例1

print(3==4)
print(3!=4)
print(3<=4)
print(3>=4)

输出结果:

False
True
True
False

示例2
当布尔参与运算时, False转0 True转1

a = 100
b = False # False转0
print(a*b - 1)

输出结果:

-1

示例3

time = 15678
hour = time // 3600 #整除
min = time % 3600 // 60
second = time % 60 #取余

print('%d时%d分%d秒' % (hour, min, second))
print(f'{hour}时{min}分{second}秒') #f-字符串格式化

输出结果

4211842118

逻辑运算符

  • and(并) 均满足时,结果才是True
  • or(或) 只要有一个满足,结果为True
  • not(取反)

逻辑运算符返回结果不一定是bool类型

短路运算:从左往右运算

and 左边开始,只要是真,继续往后走。若遇假,立即停止,后面不管

print('adw' and 3223 and 0 and 3>4)
0

or 左边开始,只要是假,继续往右走。若遇真,立即停止,后面不管

print(0 or 0.0 or [] or 18 or ())
18

4 流程控制语句

4.1 条件判断语句

if…else语句

age = 18

if age > 18:
    print('成年人的世界没有容易二字,但年轻人不至于躺平')
else:
    print('人总要学会长大')
人总要学会长大

elif语句的使用

score = float(input('请输入成绩:'))
if score < 60:
    print('未及格')
elif score < 80:
    print('合格')
elif score < 90:
    print('良好')
else:
    print('优秀')
请输入成绩:85
良好

if语句嵌套

ticket = 1 # 1买票 0未买票
knife_length = 9 #cm
tep = 36

if ticket == 1:
    print('请排队安检')
    if knife_length <= 9:
        print('通过安检')
        if tep <= 36.5:
            print('体温正常')
        else:
            print('就地等候,需进一步检查身体状况')
    else:
        print('刀具过长,强制没收')
else:
    print('请购票进站')
请排队安检
通过安检
体温正常

应用:猜拳游戏

在这里插入图片描述

分析:
游戏双方 电脑*用户 两者随机出下面三种中的一个
剪刀0 石头1 布2
用户赢得情况(左侧) 0-2 1-0 2-1(也就是说如果电脑出2,用户出0即赢得游戏)

代码实现


#用户赢得情况(左侧) 0-2  1-0 2-1

import  random
computer = random.randint(0,2) #随机出[0,2]中的一个整数
print(computer)

user = int(input('请输入你的选择:(0-剪刀,1-石头, 2-布):'))


if (user==0 and computer==2) or (user==1 and computer==0) or (user==2 and computer==1):
    print('恭喜获胜')
elif user == computer:
    print('难分伯仲,决战到天亮')
else:
    print('失败是成功他爸,加油')

运行结果:
在这里插入图片描述

4.2 循环语句

while语句

while语法:

while 判断条件: (直至条件不满足,跳出循环)
    代码块

在这里插入图片描述
示例:求1~100所有偶数的和

res = 0 #求和容器
i = 0
while i <= 100:
    if i % 2 == 0:
        res = res + i
    i += 1
print(res)
2550

这里也可以使用range,注意range左闭右开

res = 0
for x in range(1,101):
    if x % 2 == 0:
        res = res + x
print(res)
2550

break和continue的使用

#不断的询问用户,"我爱你,你爱我吗?",只有用户回答"爱"时,结束循环。
print('I love you, you too?')
answer = input('please put your answer:(yes) or (no)')
while 'start': 
    if answer == 'yes':
        print('❤'); break #结束整个循环
    else:
        print('┭┮﹏┭┮'); continue #结束本次循环,继续后面的循环

在这里插入图片描述

嵌套循环

1.生成矩形

i = 0
while i < 10: #控行
    i += 1
    j = 0
    while j < 8: #控列
        j += 1
        print('*',end = ' ') 
    print() 

最终效果:

* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 

2.倒置的九九乘法表

i = 10
while 1 <= i <= 10:
    i -= 1
    j = 0
    while j < i:
        j += 1
        print(i,'x',j,'=',i*j,end='')
    print()

最终效果:

9 x 1 = 99 x 2 = 189 x 3 = 279 x 4 = 369 x 5 = 459 x 6 = 549 x 7 = 639 x 8 = 729 x 9 = 81
8 x 1 = 88 x 2 = 168 x 3 = 248 x 4 = 328 x 5 = 408 x 6 = 488 x 7 = 568 x 8 = 64
7 x 1 = 77 x 2 = 147 x 3 = 217 x 4 = 287 x 5 = 357 x 6 = 427 x 7 = 49
6 x 1 = 66 x 2 = 126 x 3 = 186 x 4 = 246 x 5 = 306 x 6 = 36
5 x 1 = 55 x 2 = 105 x 3 = 155 x 4 = 205 x 5 = 25
4 x 1 = 44 x 2 = 84 x 3 = 124 x 4 = 16
3 x 1 = 33 x 2 = 63 x 3 = 9
2 x 1 = 22 x 2 = 4
1 x 1 = 1

3.寻找水仙花数

for i in range(100,1000):
    a = i // 100
    b = (i - 100*a) // 10
    c = i - 100*a - 10*b
    if (a**3 + b**3 + c**3 == i): #注意:这里用**,而不是^
        print('%d是水仙花数' % i)

最终结果:

153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数

4.折叠次数的求解
一张纸的厚度是0.08mm,请问折叠几次达高度 8848.13m

x = 0.08*10**(-3)
i = 0
while True:
    x *=2
    i += 1
    if x > 8848.13:
        break
print(i)

最终结果:

27

4.百马马百担问题

for b in range(1,100//3 + 1):
    for m in range(1, 100//2 + 1):
        for s in range(2,100,2):
            if b+m+s == 100 and b*3+m*2+s//2 == 100:<

以上是关于python入门篇(持续日更,未完结)的主要内容,如果未能解决你的问题,请参考以下文章

07V8第27篇技术分享|简单代码审计带你基础入门XSS(完结)

MyBaits入门完结篇

Qt入门教程100篇(已完结)

Qt入门教程100篇(已完结)

Qt入门教程100篇(已完结)

[kubernetes] 交付dubbo之持续交付dubbo-monitor和dubbo-consumer(完结篇)