网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
python中的数字
数据分析入门之PYTHON语法 公司视频课程
1.学习PYTHON的目的
由于大数据和人工智能的出现,对数据分析的需求日益增多,PYTHON是数据分析主要语言之一。因此学好PYTHON对数据分析以及后续的人工智能学习打下坚实的基础。未来如果从事数据分析、机器学习、人工智能相关工作,需要好好学习PYTHON这门语言。
2.学习数据分析的环境
安装Anaconda,再安装Jupyter notebook。Anaconda为包管理器和环境管理器,Jupyter notebook可以将数据分析报告的代码和图片组合到一个WEB文档中。
Anaconda的安装和使用,可以参考链接:
https://zhihu/question/58033789/answer/254673663
Jupyter
notebook的安装和使用,可以参考链接:
https://zhihu/question/46309360/answer/254638807
3.PYTHON基本语法
3.1注释
注释方便理解代码,可以为任意内容,程序不会运行注释。一般有两种注释方法:
(1) 注释方法1:一行文字注释,可以在注释前面加#
(2) 注释方法2:几行文字注释,可以用‘‘‘ ’’’来包含几行注释文字
3.2变量
在程序中变量为数字或者是任何数据类型,用一个变量名来表示。变量名的起名前半部分名称代表数据的意义,后半部分名称代表数据的类型。在PYTHON中数字不能为变量名的开头,同时PYTHON中对大小写敏感的。
3.3数据类型
PYTHON中的数据类型分为5大类:
(1) 字符串
(2) 数字
(3) 容器
(4) 布尔
(5) NONE
3.3.1数据类型:字符串
Python中的字符串用单引号(')或双引号(")括起来
3.3.2数据类型:数值
Python3 支持int(整数)、float(浮点数)、complex(复数)
3.3.3数据类型:容器
3.3.3.1数据类型:容器-列表
List(列表) 是 Python 中使用最频繁的数据类型。
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号([])之间、用逗号分隔开的元素列表。
列表涉及到常用操作:增加,删除,查询,修改
增加:
删除:
查询:
修改:
3.3.3.2数据类型:容器-集合(Sets)
集合(set)是一个无序不重复元素的序列。
集合涉及到常用操作:增加,删除,查询,修改
增加
删除
查询
修改
3.3.3.3数据类型:容器-字典(Dic)
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型,在同一个字典中,键(key)必须是唯一的。
列表是有序的对象结合,字典是无序的对象集合。
增加
删除
查询
修改
3.3.3.4数据类型:布尔类型
布尔类型分为‘True’或者‘False’
3.3.3.5数据类型:空值
4.条件判断
Python条判断语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
基本语法为:简单判断if
……else……
多个条件判断if……elif……else……
比较符号 : 小于
小于等于 大于等于>= 不等于!= 等于==
逻辑比较 : and 并且
or或 not非
简单判断:
多重判断:
5.循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
没有循环的情况下,需要每个元素打印一遍。
有循环后,循环会自动遍历每个元素。
清洗字典中的数据
跳出循环
退出循环
6.函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如input()。但你也可以自己创建函数,这被叫做用户自定义函数
定义函数
使用函数
函数参数:不可变数据类型
字符串、数字、元祖为3种不可变数据类型,其他的都是可变的数据类型
函数参数:可变数据类型
变量作用域
Python的作用域一共有2种:全局作用域,局部作用域。
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
7.数据结构
常用的数据结构有:队列、栈、排序字典、计数
队列的特点是先进先出,后进后出
栈的数据结构特点是先进后出,后进先出。
排序字典
由于字典内定义的元素是无序的,用排序字典可以对字典内部的元素进行排序。
计数器Counter
总结:
学习PYTHON,对于每行代码还是需要去实践一遍,很多代码看似简单,但是实践起来会有或多或少的错误,很赞同猴子老师的一句话,编程其实是一门手艺活,只有多练才能熟练掌握。
使用Python轻松实现字母数字转换 流量视频课程
由于有几个内置的函数,这个开发者可以使用Python轻松地解决一个复杂的难题。继续阅读,看看如何!
在我第一次CTF(夺旗)比赛中,我注意到一些挑战需要角色转换才能发现一个字符串的真实价值。我花了几分钟的时间试图找出一个可以用来“揭露”给定内容的模式。
挑战1
收集有关给定IP地址的信息后,找到一个文件,其中包含以下内容:
rxms {} DqhqdeqpRxms它看起来完全是随机的,但是鉴于这些标志有一个模式:“flag {some-hash-here}”,我们可以尝试一个字符转换:
rxms{DqhqdeqpRxms}synttzouuapvvbqwwcrxxdsyyetzzfuaagvbbhwccixddjyeekzfflag{...} <- real content
我们不得不在字母表中跳12个位置来获取字符串的真实内容。
挑战2
为了连接到一个服务,我们必须解决密码短语:
AQW UJCNN PQV RCUU乍一看,密码短语看起来像凯撒的密码。解决这个挑战也需要改变角色,但是这次倒退了:
AQW UJCNN PQV RCUUZPV TIBMM OPU QBTTYOU SHALL NOT PASS <- backward content
Python的救援
Python有内置的函数ord()和chr()可以帮助我们完成这个任务:
class Alphanumeric(object): ALPHABET_LENGTH = 26 def __init__(self, nrange=None): self.current_letter = 'z' self.current_number = 0 self.nrange = nrange def forward_letter(self, letter, positions): if letter.islower(): unicode_point = ord('a') else: unicode_point = ord('A') start = ord(letter) - unicode_point offset = ((start + positions) % self.ALPHABET_LENGTH) + unicode_point self.current_letter = chr(offset) return self.current_letter def backward_letter(self, letter, positions): if letter.islower(): unicode_point = ord('a') else: unicode_point = ord('A') start = ord(letter) - unicode_point offset = ((start - positions) % self.ALPHABET_LENGTH) + unicode_point self.current_letter = chr(offset) return self.current_letter def next_letter(self): return self.forward_letter(self.current_letter, 1) def previous_letter(self): return self.backward_letter(self.current_letter, 1) def forward_number(self, number, positions): if not self.nrange: self.current_number = number + positions return self.current_number index = self.nrange.index(number) start = index + positions offset = (start % len(self.nrange)) self.current_number = self.nrange[offset] return self.current_number def backward_number(self, number, positions): if not self.nrange: return number - positions index = self.nrange.index(number) start = index - positions offset = (start % len(self.nrange)) self.current_number = self.nrange[offset] return self.current_number def next_number(self): return self.forward_number(self.current_number, 1) def previous_number(self): return self.backward_number(self.current_number, 1) def forward_alphanumeric(self, alpha, positions, ignore_numbers=False, ignore_letters=False): result = "" for char in alpha: if char.isdigit() and not ignore_numbers: char = str(self.forward_number(int(char), positions)) if char.isalpha() and not ignore_letters: char = self.forward_letter(char, positions) result += char return result def backward_alphanumeric(self, alpha, positions, ignore_numbers=False, ignore_letters=False): result = "" for char in alpha: if char.isdigit() and not ignore_numbers: char = str(self.backward_number(int(char), positions)) if char.isalpha() and not ignore_letters: char = self.backward_letter(char, positions) result += char return result
使用字母数字类:
alpha = Alphanumeric()print alpha.forward_alphanumeric('abc123', 1)print alpha.backward_alphanumeric('abc123', 1)// prints: bcd234// prints: zab012
请注意,您可以定义一个数字范围,以便在移动数字时执行“循环循环”:
alpha = Alphanumeric([1, 2, 3, 4 , 5])print alpha.forward_alphanumeric('123', 6)// prints: 234
一个CLI工具的救援
考虑下一个CTF的挑战,我写了一个名为shift的小CLI工具,可以更容易地转换字母数字字符。
echo "Dqhqdeqp Oazfqzf" | python shift.py -p 12 --backwards// prints: "Reversed Content"python shift.py abc123 -p 5// prints: "fgh678"
您可以在GitHub上看到文档和源代码。
Python——while循环实现猜数字小游戏 营销视频课程
首先明白随机数的产生,python中随机数是由random模块实现的,引用模块代码:
import random
直接上代码图:
解释各行代码的含义:
119行是一个随机数模块引入。
120行 是从1-100内随机产生一个数字并且赋值给num
121提示用户输入一个1-100的数字
123行是一个计数器,gss=1,用来计数猜这个游戏总共猜了多少次。
124行while循环当用户输入一个数字it不等于随机产生的数字num时一直做循环。
gass计数器累加。
126-129行是一个判断用户输入的num范围是不是1-100,如果不是,则要重新输入。
130-132行是判断输入的it与num比较,如果输入的it>num,则提示“大了”,重新输入一个小的数字。
133-135行是判断输入的it与num比较,如果输入的it136-137行,当你猜对时,输出此行,并且输出137行 你做了XX次,次数是gss。
附上源码:
import random
num=random.randint(1,100)
print('输入一个100以内的整数')
it=int(input())
gss = 1
while it!=num:
gss+=1
if it>100 or it
print('输入1-100的整数')
it=int(input())
pass
elif it>num:
print('太大了')
it=int(input())
elif itprint('太小了')
it=int(input())
print('you win')
print('you make it',gss)
附上作者帅照和工作日常:
作者帅照
工作日常