python编程入门总结1

  • 输入输出函数
    • print输出
    • input输入
  • 转义字符与注释
    • 转义字符
    • 注释
  • 变量
    • 命名规则
    • 变量的结构
    • 类型
      • 整型
      • 浮点型
      • 布尔类型
      • 字符串类型
    • 类型转换
  • 运算符
    • 算数运算符
    • 赋值运算符
    • 比较运算符
    • 布尔运算符
    • 位运算符
    • 运算符的优先级
  • 程序的结构
    • 对象的布尔值
    • 选择结构
    • 内置函数range()
    • 循环结构
    • 流程控制语句
    • else语句
    • 循环嵌套
    • 二层循环中break和continue

输入输出函数

print输出

print(520)
print('helloword')
print(23*25)

输出到文件当中。注意:1、所指定的盘符存在,2、使用file=fp

fp=open('D:/text.txt','a+')#如果文件不存在就创建,如果存在就追加
print('hello',file=fp)
fp.close()

不换行输出

print('hello','world','python')# hello world python

input输入

input函数接收输入数据默认为字符串类型str。

present=input('请输入:')#括号内字符串为输入前的提示信息。
print(present,type(present))#这里的present变量类型是str。input函数输入的默认格式就是str。

input使用:加法计算两个的输入数字

a=input('输入一个加数')
b=input('输入另一个加数')
print(int(a)+int(b))#由于input接受类型为str,所以这里需要进行类型转换。否则就是字符串的拼接。

转义字符与注释

转义字符

转义字符 含义
\n 换行
\t 制表位
\b backspace退一格/删除
\r return回车

当输出内容出现敏感字符(例如 ’ ),为了避免发生歧义程序报错。可以使用转义字符“ \ ”。

print('\'nihao\'')# 'nihao'

注释

名称 解释
单行注释 “ # ”
多行注释 “”" “”" python中并没有多行注释,字符串不赋值给任何变量无意义,所以被作为注释了
声明注释 #coding:utf-8 python3就不需要了

变量

命名规则

变量、函数、类、模块和对象的名字就叫标识符。
标识符都要遵循以下规则:

  • 字母、数字、下划线
  • 不能以数字开头
  • 不能是保留字
  • 严格区分大小写

其中,python保留字可用以下代码查看

import keyword
print(keyword.kwlist)
#['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']

变量的结构

变量由三部分组成:

  • 标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取。
  • 类型:表示对象的数据类型,使用内置函数type(obj)来获取。
  • 值:表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出。
name='李四'
print(name)
print(id(name))#获取对象在内存当中的地址(标识)
print(type(name))#获取对象数据类型
name='张三'#同一变量被多次赋值,name将指向新的内存地址,这里是存储张三的内存地址。
#存储李四的变量将会被视为内存垃圾,python垃圾回收机制会自动回收。

类型

整型

整数类型拥有不同进制表示方式

  • 十进制:默认的进制
  • 二进制:以0b开头
  • 八进制:以0o开头
  • 十六进制:以0x开头
print(118)
print(0b10101111)
print(0o176)
print(0x1EAF)

浮点型

浮点数float计算不精确,但也并非所有浮点数都会出现这种问题,不必深究。底层二进制计算问题。
如需精确计算浮点数,可以导入decimal模块,参考代码如下:

from decimal import Decimal
n1=1.1
n2=1.2
print(n1+n2)#2.3

布尔类型

true表示1,false表示0

字符串类型

字符串被成为不可变的字符序列,指针指向内存地址,更改指针不消除原有的字符串,垃圾回收机制回收。

类型转换

在将不同数据类型数据进行拼接时,需要用到数据类型转换。

函数名 作用 注意事项 举例
str() 将其他数据类型转换成字符串 也可用引号转换 str(123) ‘123’
int() 将其他类型转换成整数 1、文字类和小数字符串,无法转成整数 2、浮点数转换成整数:抹零取整 int(‘123’) int(9.8)
float() 将其他数据类型转成浮点数 1、文字类无法转成整数 2、整数转成浮点数,末尾为.0 float(‘9.9’) float(9)
#str()
wname='王五'
age=20
print('我是'+wname+'今年'+str(age)+'岁')
#int():只能转整数串,文字类和小数类不可。例:t1='1.23'可以先转float再转int
#float():无法转文字类字符串,其他均可。

运算符

算数运算符

运算符 表示 说明
标准运算符 + - * /
取余运算符 % 异号取余公式:余数=被除数-除数*商
幂运算符 **
整除 // 异号向下取整
print(1+1)#2
print(2-1)#1
print(2*2)#4
print(1/2)#0.5
print(11//2)#整除运算 5
print(11%2)#1
print(2**2)#2的2次方 4
print(9//4)#2
print(-9//-4)#2
#异号整除,向下取整
print(9//-4)#-3
print(-9//4)#-3
#异号取余要遵循公式:余数=被除数-除数*商
print(9%-4)#9-(-4)*(-3)=-3
print(-9%4)#-9-(4)*(-3)=3

赋值运算符

“=”是赋值运算符,执行顺序是从右到左的。
链式赋值
相同值赋值给不同变量,==内存地址(标识)==是相同的。

a=b=c=20
print(a,id(a))#20 1353999168
print(b,id(b))#20 1353999168
print(c,id(c))#20 1353999168

参数赋值
+=、-=、*=、/=、//=、%=

a=20
a+=30#a=a+30
a-=10#a=a-10
a*=20#a=a*20
a/=2#a=a/2
a//=2#a=a//2

解包赋值
a,b,c=20,30,40

a,b,c=20,30,40
print(a,b,c)#20 30 40
#左右个数必须对应
e,f=20,30,40#报错
#交换值
s1,s2=10,20
s1,s2=s2,s1
print(s1,s2)#20,10

比较运算符

比较运算符结果是True/False。
>、<、>= 、<= 、!=

a,b,c=20,30,20
print(a>=b)#False
print(a==c)#True

==、is、is not
一个“ = ”称为赋值运算符,“ == ”称为比较运算符。 一个变量由三部分组成,标识、类型、值。“ == ” 比较的是值,“ is ”比较的是标识。

a=b=10
print(a==b)#True
print(a is b)#True
print(a is not b)#Falselist1=[11,22,33,44]
list2=[11,22,33,44]
print(list1==list2)#True
print(list1 is list2)#False
print(id(list1),id(list2))#2197020279368 2197020314696不等,所以为false

布尔运算符

and
其中一个结果为False,则为False。全为True,才为True。

a,b=1,2
print(a==1 and b==2)#True
print(a==1 and b<2)#True and False -->False
print(a!=1 and b==2)#False and True -->False
print(a!=1 and b!=2)#False and False -->False

or
其中一个为True,结果就为True。

a,b=1,2
print(a==1 or b==2)#True
print(a==1 or b<2)#True or False -->True

not
取反,True–>False,False–>True。

f1=True
f2=False
print(not f1)#False
print(not f2)#True

in、not in
是否存在当中。

s='helloworld'
print('w' in s)#True
print('k' in s)#False
print('w' not in s)#False
print('k' not in s)#True

位运算符

将数据转成二进制进行计算。
& 、|
位与 &:对应数位都是1,结果数位才是1,否则为0。
位或 | :对应数位都是0,结果数位才是0,否则为1。

print(4&8)#0
print(4|8)#12


>> 、<<
左移位运算符<<:高位溢出舍弃,低位补0。
右移位运算符>>:低位溢出舍弃,高位补0。

print(4<<1)#8 向左移动1位,相当于*2
print(4<<2)#16 向左移动2位,相当于*4
print(4>>1)#2 向右移动1位,相当于/2
print(4>>2)#1 向右移动2位,相当于/4


运算符的优先级

算数运算–>位运算符–>比较运算符–>布尔运算符–>赋值运算符——无括号情况下

程序的结构

对象的布尔值

Python一切皆对象,所有对象都有一个布尔值——获取对象布尔值,函数bool()。

以下对象的布尔值位False

  • Fasle
  • 数值0
  • None
  • 空字符串
  • 空列表
  • 空元组
  • 空字典
  • 空集合
#以下结果皆为False,
print(bool(False))
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool(''))
print(bool(""))
print(bool([]))#空列表
print(bool(list()))#空列表
print(bool(()))#空元组
print(bool(tuple()))#空元组
print(bool({}))#空字典
print(bool(dict()))#空字典
print(bool(set()))#空集合#其他对象的布尔值均为True。
print(bool('aaa'))#True
print(bool(10))#True

选择结构

单分支结构

if 条件表达式:条件执行体

双分支结构

if 条件表达式:条件执行体1
else:条件执行体2
money=200
s=int(input('请输入取款金额:'))
if money>=s:money-=sprint('取款成功,余额为',money)
else:print('余额不足')

多分支结构

if 条件表达式1:条件执行体1
elif 条件表达式2:条件执行体2
elif 条件表达式N:条件执行体N
[else:][条件执行体N+1]

嵌套if

if 条件表达式:if 内层条件表达式:内层条件执行体1else:内层条件执行体2
else:条件执行体

条件表达式
条件表达式是if…else的简写。

x if 判断条件 else y

规则:如果判断条件的布尔值为True,条件表达式的返回值为x,否则返回y。

pass语句
语句什么都不做,只是一个占位符。起“ 跳过 ”作用,为了不让语法报错。

if answer=='y'print('OK')
else:pass

内置函数range()

range()函数用于生成一个整数序列,创建range对象有三种方式:

方式 说明
range(stop) 创建一个(0,stop)之间的整数序列,步长为1
range(start,stop) 创建一个(start,stop)之间的整数序列,步长为1
range(start,stop,step) 创建一个(start,stop)之间的整数序列,步长为step

range()的返回值是一个迭代器对象
range类型的优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。
in 与 not in 可判断整数序列中是否存在指定整数。

r=range(10)
print(r)#range(0, 10)
print(list(r))#list()查看range对象中的整数序列[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
s=range(1,10,2)
print(list(s))#[1, 3, 5, 7, 9]
print(10 in s)#False

循环结构

while

while 条件表达式:条件执行体(循环体)
#1-5的和
sum=a=0
while a<5sum+=aa+=1#要有跳出循环的条件,否则为死循环print('1-5的和'sum)#计算1到100之间的偶数和
sum=a=0
while a<=100:if not bool(a%2):sum+=aa+=1
print('1-100和为'+str(sum))#1-100和为2550

for-in

  • in表达从(字符串、序列等)中依次取值,又称为遍历。
  • for-in遍历的对象必须是可迭代对象。
for 自定义变量 in 可迭代对象:循环体

注:循环体内不需要访问自定义变量,可以将自定义变量代替为下划线。

for item in 'Python':print(item)
'''
P
y
t
h
o
n
'''
for i in range(5):print(i)'''
0
1
2
3
4'''
for _ in range(3):print('人生苦短,我用Python')
'''
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
'''

流程控制语句

break语句
用于结束循环结构,一般和分支结构if一起使用。

#从键盘录入密码,最多录入3次,如果正确结束循环
for item in range(3):pwd=input('请输入密码')if pwd=='888':print('密码正确')breakelse:print('密码错误')

continue
用于结束当前循环,进入下一次循环,通常与分支结构if一起使用。

#要求输出1-50之间是5的倍数
for item in range(1,51):if item%5!=0:continueprint(item)

else语句

else不仅可以和if搭配使用,也可以在while/for循环结构中使用。在循环中没有执行break的情况下,循环结束后会执行else分支。

for item in range(3):pwd=input('请输入密码')if pwd=='888':print('密码输入正确')breakelse:print('密码不正确')
else:print('对不起密码三次均错误')
"""
请输入密码123
密码不正确
请输入密码123
密码不正确
请输入密码123
密码不正确
对不起密码三次均错误
"""

循环嵌套

循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行

#99乘法表
for i in range(1,10):for j in range(1,i+1):print(str(i)+'*'+str(j)+'='+str(i*j),end='\t')print()
'''
1*1=1
2*1=2  2*2=4
3*1=3  3*2=6  3*3=9
4*1=4  4*2=8  4*3=12 4*4=16
5*1=5  5*2=10 5*3=15 5*4=20 5*5=25
6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
'''

二层循环中break和continue

二层循环中的break和continue用于控制本层循环。
break

for i in range(5):for j in range(1,11):if j%2==0:breakprint(j)
'''
1
1
1
1
1
'''

continue

for i in range(5):for j in range(1,11):if j%2==0:continueprint(j,end='\t')print()
'''
1   3   5   7   9
1   3   5   7   9
1   3   5   7   9
1   3   5   7   9
1   3   5   7   9
'''

#参考资料
https://www.bilibili.com/video/BV1wD4y1o7AS?p=46&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=822ed54fe446cd5d38b702cfccd5a730

“人生苦短,我用Python“——python基础<1>相关推荐

  1. 人生苦短,我用Python(Python快速教程 - 基础篇)

    Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习 ...

  2. python 动态执行条件判断_【人生苦短,我学 Python】基础篇——条件判断与循环语句(Day12)_不积跬步,无以至千里!-CSDN博客...

    原文作者:AI 菌 原文标题:[人生苦短,我学 Python]基础篇--条件判断与循环语句(Day12) 发布时间:2021-02-08 23:17:06 写在前面:大家好!我是[AI 菌],一枚爱弹 ...

  3. 【人生苦短,我学 Python】基础篇——运算符(Day6)

    大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱编程.热爱分享! 这博客是我对学习的一点总结与思考.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关注我的动态 ...

  4. python人生苦短_人生苦短,我用Python(教程基础篇)

    人生苦短,我用Python(Python快速教程 - 基础篇) Life is short, you need Python 人生苦短,我用Python Python简介 本章将介绍Python的最基 ...

  5. 【人生苦短,我学 Python】基础篇——标准数据类型(Day3)

    大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱编程.热爱分享! 这博客是我对学习的一点总结与思考.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关注我的动态 ...

  6. 【人生苦短,我学 Python】基础篇——字符串(Day7)

    大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱编程.热爱分享! 这博客是我对学习的一点总结与思考.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关注我的动态 ...

  7. 【人生苦短,我学 Python】基础篇——初步认识(Day1)

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

  8. python基础:人生苦短,我学python

    python基础:人生苦短,我学python 一.注释 单行注释 多行注释 二.变量以及类型 变量的定义 变量的类型 三.标志符以及关键字 标志符的规则 关键字 四.输出 普通输出 格式化输出 五.运 ...

  9. 人生苦短,我用Python(基础篇)

    系统性学习Python,从入门到放弃 -- (已完结) 1. 认识python和基础知识 1.1 认识Python(了解) 1.2 Liunx 系统中编写Python程序的两种方法 1.3 注释 1. ...

最新文章

  1. Linux下gedit显示行号
  2. python lstm_python-Keras中LSTM的补充
  3. Final Cut Pro快捷键
  4. import() 动态加载component组件失败
  5. 前后端分离,如何解决跨域问题
  6. 夺命雷公狗---Smarty NO:19 html_options函数
  7. 在.Net Core中使用Swagger制作接口文档
  8. Linux内核学习笔记(2)-- 父进程和子进程及它们的访问方法
  9. Jquery操作select选项集合,判断集合中是否存在option
  10. StanfordDB class自学笔记 (10) Unified Modeling Language
  11. 使用rpm 安装wget
  12. 2020_CIKM_DREAM_ A Dynamic Relation-Aware Model for social recommendation
  13. 加州大学洛杉玑分校计算机专业,加州大学洛杉矶分校
  14. 死磕 Fragment 的生命周期
  15. android硬件抽象层(HAL)详解
  16. springboot启动项目编码问题
  17. 用System中System.setOut()方法修改输出方式
  18. kprobe 的 3 种使用
  19. SP 2022论文泛读
  20. 【JVM · 字节码】指令集 解析说明

热门文章

  1. arduino 学习笔记及课件01基础入门
  2. 台式计算机包装清单,台式电脑主机箱的运输包装设计.docx
  3. 哪款软件可以测试网速上行,测试上行速度_怎样在自己电脑上检测网速的上行速率?...
  4. 分辨mqtt在线与离线_【案例】某区VOC在线监测系统实施案例
  5. 对exchange邮箱的一些初步的了解
  6. 【C#语言】MDI窗体
  7. Ubuntu 18.04 NVIDIA驱动安装总结
  8. 从养狗到放弃要几天?
  9. 小米手机打开之前打开的应用--完美实现步骤
  10. 在使用eclipse的时候,一不小心关掉了下面的控制台,要这么做就能恢复