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

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)#False

list1=[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

“人生苦短,我用Python“——python基础<1>_第1张图片
>> 、<<
左移位运算符<<:高位溢出舍弃,低位补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“——python基础<1>_第2张图片
“人生苦短,我用Python“——python基础<1>_第3张图片

运算符的优先级

算数运算–>位运算符–>比较运算符–>布尔运算符–>赋值运算符——无括号情况下
“人生苦短,我用Python“——python基础<1>_第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-=s
    print('取款成功,余额为',money)
else:
    print('余额不足')

多分支结构

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

嵌套if

if 条件表达式:
	if 内层条件表达式:
		内层条件执行体1
	else:
		内层条件执行体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<5
	sum+=a
	a+=1#要有跳出循环的条件,否则为死循环
	print('1-5的和'sum)

#计算1到100之间的偶数和
sum=a=0
while a<=100:
    if not bool(a%2):
        sum+=a
    a+=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('密码正确')
        break
    else:
        print('密码错误')

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

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

else语句

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

for item in range(3):
    pwd=input('请输入密码')
    if pwd=='888':
        print('密码输入正确')
        break
    else:
        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:
            break
        print(j)
'''
1
1
1
1
1
'''

continue

for i in range(5):
    for j in range(1,11):
        if j%2==0:
            continue
        print(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,开发语言)