[网络安全学习篇33]:0基础带你入门python

目录

 

python的安装与使用

1、如何安装

2、如何使用python

命令行启动

python的输出

c语言与python语言比较

1、c实现输出hello

2、python 实现输出hello

如何来编辑

python的输入

input() 函数实现输入

练习:

if语句 条件判断

结构

条件语句中的几个特殊语句

and应用:

or实例:

not实例:

多分支实例

变量

变量名称的定义

赋值类型

数字

字符串赋值

 字符串赋值的几种形式

列表

介绍:

实例:

元组

介绍:

实例:

字典

介绍:

实例:

赋值类型的属性

数字

字符串

元组

列表

字典

循环

while 循环

结构

实例

continue和break

break实例

continue实例

for循环

结构

1、字符串

2、列表

3、元组

4、字典

5、数字

实例:


python的安装与使用

1、如何安装

推荐网址

这里笔者也为大家整理了python3.8.2的64位和32位的安装包:

网盘链接    提取码:zx8s 

点击第一个install Now

安装完成后关闭即可

2、如何使用python

命令行启动

win窗口键+r键

点击确定进入cmd窗口

输入python,进入pyhon编译器

我们来实际操作一波

exit()  退出


python的输出

life is short I use python(人生苦短我用python)

根据代码量

c语言与python语言比较

下面我们分别用c语言和python语言分别编写

输出 hello 的程序来体会上面一句含义。

1、c实现输出hello

我们在Linux操作系统中实现c程序的运行

  • vim test.c
#include<stdio.h>
int main(){
    printf("Hello\r\n");
    return 0;
}

gcc test.c -o test.out

2、python 实现输出hello

  • print("hello")

可以看出,同样的一个程序,我们的python只用了一行就实现了。

使用python输出如下格式的内容

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

     hello

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

新建记事本

修改后缀为.py

注:

如果你修改后缀之后还是原来的.txt

你需要显示出你当前操作系统的文件后缀,在再对其做修改

具体操作如下:

如果你的电脑是win10系统的话。

如何来编辑

就进入到下面的编辑界面

编辑下面内容:

print("**************")

print("hello")

print("**************")

保存(Ctrl+S)

运行(F5)

运行结果:

可以发现一条语句一行,我们如何让它不换行呢?

概念python中如何获取函数的帮助信息

换行功能实际是print(函数自带的,如何将这个功能关闭呢)

print("hello",end="") 取消换行

当然上面的效果我们也可以使用别的方法实现

直接加空格

字符串的拼接

print("   "+”hello“)

也可以实现这个效果

python很强大,我们的也可以直接

print(" * " * 20)  


python的输入

设计一个程序,屏幕上输出

请输入你的名字: allen

欢迎allen用户登录

 赋变量 

name = "allen"
print(name)
print("欢迎allen用户登录")

那么我们如何把print语句中的allen用变量替换呢

使用我们前面学过的字符串相加就可实现

print("欢迎"+name+"用户登录")

name = "allen"
print(name)
print("欢迎"+name+"用户登录")

input() 函数实现输入

变量 = input("字符串")

input(函数)一般结合变量使用,就是将你在屏幕上输入的值赋给变量

下面我们来看一个具体的例子:

name = input("请输入你的名字:")
print(name)
print("欢迎"+name+"用户登录")

屏幕会在暂停在这,等待你的输入

 这样我们在最开始设想的功能就实现了

 我们在具体对其进行分析一下:

注:python2的输入(我们前面使用的是python3)

使用 raw_input("字符串")

练习:

屏幕上输出

请输入用户名:lisa

请入密码:123

用户名是lisa密码是123

username = input("请输入用户名:")
password = input("请输入密码:")
print("用户名是"+username+"密码是"+password)

if语句 条件判断

结构

单分支结构

if 条件:

   子语句(子语句一定要有缩进4个空格,条件成立执行)

双分支结构

if 条件:

   子语句(子语句一定要有缩进4个空格,条件成立执行)

else

    子语句(当条件不成立的时候才会执行)

多分支结构

注:子语句不缩进,就会报错

条件语句中的几个特殊语句

  • and 并且 (两个条件必须同时成立)
  • or 或者 (两个条件只需要满足其中一个条件即条件成立)
  • not 条件取反
  • == 判断条件是否相等
  • > 大于
  • < 小于
  • != 不等于
  • >= 小于等于
  • <= 大于等于

and应用:

我们对前面的练习做一个升级

要求如果用户输入的用户名不是tom或者密码不是123

报用户名或密码有误

username = input("请输入用户名:")
password = input("请输入密码:")

#print("用户名是"+username+"密码是"+password)  #将这一行注释掉
if username == "tom" and password == "123":
    print("欢迎"+username)
else:
    print("您输入的用户名或密码有误")

or实例:

if 3 > 4 or 4 < 5:
    print("yes")
else:
    print("no")

not实例:

if not (3 > 4) :
    print("yes")
else:
    print("no")

多分支实例

小练习:成绩判断

请输入你的成绩:69

判断标准

0-59 输出不及格

60-69 及格

70-79 良

80-89 好

90-100 优秀

准备:

代码:

num = int(input("请输入成绩:"))

if num >= 0 and num <= 59:
    print("不及格")
elif num >= 60 and num <=69:
    print("及格")
elif num >= 70 and num <=79:
    print("良")
elif num >= 80 and num <=89:
    print("好")
elif num >= 90 and num <=100:
    print("优秀")
else:
    print("请输入0-100以内的成绩")

 运行结果达到了我们预期的效果

 

变量

变量 = 赋值(赋值类型)

变量名称的定义

  1. 不能以数字开头
  2. 变量名称中不能包含特殊符号(_下划线除外)
  3. 变量名称区分大小写
  4. 关键字不能作为变量名称
  5. 内键函数不能作为变量名称

注1:

关键字

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

注2:

如何区分内建函数

1、颜色 在使用我们的python编译器编写时,内建函数呈现紫色

2、查看官方的帮助手册

内建函数作为变量的后果,这个函数就不能使用了

可以使用del(type)来还原。

赋值类型

数字

inta = 9

字符串赋值

 字符串赋值的几种形式

astr = "python"
print(astr[5])
print(astr[0:2]) #变量[脚标的起始位置:脚标的结束位置] 显示结束位置之前的内容才会被显示
#print(astr[6]) 报错
print(astr[0:1000]) #结束位取任意超过其长度的值
print(astr[0:1000:2])  #变量[脚本的起始位置:脚标的结束位置:步长值]
print(astr[-1]) #取最后一位
#print(astr[-7]) 报错
print(astr[-1:-1000:-1]) #反向取值
print(astr[:])
print(astr[::-1])

列表

介绍:

列表的特点 [] 在中括号可以写入不同类型的数据,每个值直接用逗号分隔

支持脚标取值

实例:

输入用户名的时候,可以输入tom jerry

tom 123 jerry 456

userlist = ["tom","jerry"]
passlist = ["123","456"]

username = input("请输入用户名:")
password = input("请输入密码:")

if username in userlist and password in passlist:
    print("欢迎"+username+"登录")
else:
    print("你输入的用户名或密码有误")

元组

介绍:

元组的特点()基本与列表类似

实例:

前面的例子也可用元组实现

usertuple = ("lisa","bob")
passtuple = ("123","456")

username = input("请输入用户名:")
password = input("请输入密码:")

if username in usertuple and password in passtuple:
    print("欢迎"+username+"登录")
else:
    print("你输入的用户名或密码有误")

字典

介绍:

{} 字典没有索引值 用键值对来取值 ["key":"vlaue"]

实例:

对于前面的例子,我们会发现它存在着一个严重的bug,

即只要你输入列表中存在的用户名和密码列表中存在的密码,且他们不相互对应

系统也会判定成功,我们使用字典可以很有效的解决这个问题

userdict = {"tom":"123","jerry":"456","lisa":"789"}

username = input("请输入用户名:")
password = input("请输入密码:")

if username in userdict and password == userdict[username]:
    print("欢迎"+username+"登录")
else:
    print("你输入的用户名或密码有误")

赋值类型的属性

(数字 字符串 元组 列表 字典)

数字

  • inta = 10
  • print(type(inta))

<class 'int'>

  • print(dir(inta))

['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']

 以上就时int型的全部属性,你也可以理解为这些都是可调用的函数,如果读者接触过面向对象的程序语言,其实属性也有面向对象的概念在里面,int类型就相当与一个类,里面封装有很多函数可以调用。

我们通过help()函数了解其详细的用法介绍

  • print(help(inta.bit_length))

Help on built-in function bit_length:

bit_length() method of builtins.int instance
    Number of bits necessary to represent self in binary.
    
    >>> bin(37)
    '0b100101'
    >>> (37).bit_length()
    6

None

我们来看一下这个函数的效果 

  • print(inta.bit_length())

4

上面还有很多,我在这就不一一赘述了,读者可以通过help()函数了解相关用法,再去应用它们

字符串

  • stra = "Python"
  • print(type(stra))

<class 'str'>

  •  print(dir(stra))

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

同样,我们也可以使用help()函数来查看其相关用法

下面我们举几个简单的例子

  • print(stra.lower()) #全转小写

python

  • print(stra.upper()) #全转大写

PYTHON

  • print(stra.split("t")) #切割字符串

['Py', 'hon']

元组

元组中的值不可变的

  • tuplea = ("tom","jerry")     
  • print(type(tuplea))

<class 'tuple'>

  • print(dir(tuplea))

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

  • print(tuplea.index("jerry")) #返回的是它的脚标值

1

列表

列表中的值可变

  • lista = ["tom","jerry"]    
  • print(type(lista))

<class 'list'>

  • print(dir(lista))

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

  • print(lista.index("tom")) #返回其脚标

0

  • lista.append("bob")  #附加值
  • print(lista)

['tom', 'jerry', 'bob']

字典

  • dicta = {"tom":"123","jerry":"456"}
  • print(type(dicta))

<class 'dict'>

  •  print(dir(dicta))

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

  • print(dicta.keys()) #得到其键值

dict_keys(['tom', 'jerry'])

  • print(dicta.values()) #得到其真值

dict_values(['123', '456'])

  • dicta["tom"] = "789" #改变tom其对应的值
  • print(dicta)

{'tom': '789', 'jerry': '456'}

循环

小游戏 猜数字游戏

程序可以取出一个100以内的随机整数

你猜大了

你猜小了

猜对

import random   #调用random模块

p_choice = int(input("请输入100以内的整数:"))
c_choice = random.randint(1,100)

if p_choice > c_choice:
    print("你猜大了")
elif p_choice < c_choice:
    print("你猜小了")
else:
    print("你猜对了")

我们写这个例子就是为了引出循环

while 循环

结构

while 条件:

    子语句

实例

可以看出上面我们猜中的可能性很低,那如果我们循环输入多次呢?

import random   #调用random模块

c_choice = random.randint(1,100)
num = 0

while num < 10:
    num = num + 1
    p_choice = int(input("请输入100以内的整数:"))
    
    if p_choice > c_choice:
        print("你猜大了")
    elif p_choice < c_choice:
        print("你猜小了")
    else:
        print("你猜对了")

嘿嘿,我猜对了

continue和break

break 结束循环体

continue 跳过本次循环

break实例

num = 0

while num < 10:
    num = num + 1
    print(num)
    if num == 5:
        break
    

continue实例

#1到10的偶数和

num = 0
sum = 0

while num < 10:
    num += 1   #num = num + 1   <=>    num ++   <=>   num += 1
    if num % 2 :
        continue  #coninue下面的语句不执行,跳到下一次循环
    sum += num

print(sum)

for循环

根据变量赋值的次数进行循环

结构

for i in  类型:

    子语句

1、字符串

for i in "python":  #字符串

    print("hello"+" "+ i)

2、列表

for i in ["tom","jerry","bob"]:   #列表
    print("hello"+" "+ i)   

3、元组

for i in ("tom","jerry","bob"):   #元组
    print("hello"+" "+ i)

4、字典

输出的是键值

for i in {"tom":"123","jerry":"456","bob":"789"}:   #字典
    print("hello"+" "+ i)

如何输出真值

adict = {"tom":"123","jerry":"456","bob":"789"}  
for i in adict:       #字典
    print("hello"+" "+ adict[i])

5、数字

直接这样写

for i in 10:   
    print("hello"+" "+ i)

会报错

我们引入range()

for i in range(10):   
    print("hello"+" "+ str(i))

那么我们如何让它不从0开始,而是我们自己设定?

我先通过help()函数查看range()函数的相关用法

for i in range(1,10):
    print("hello"+" "+ str(i))

实例:

#1到10偶数求和
sum = 0
for i in range(1,11):
    if i % 2:
        continue
    sum += i

print(sum)

#1到10奇数求和
sum = 0
for i in range(1,11):
    if not(i % 2):
        continue
    sum += i

print(sum)

发布了58 篇原创文章 · 获赞 28 · 访问量 3711

猜你喜欢

转载自blog.csdn.net/weixin_43252204/article/details/105587308
今日推荐