首页 > 编程语言 >python综合练习

python综合练习

时间:2023-10-29 13:23:27浏览次数:40  
标签:练习 socket python ip random url urls print 综合

学习目标

1、random+print+while+format+判断符号>>>彩票游戏
2、open+readlines+def函数>>>卖包子
3、split+replace+readlines+sockets>>>批量获取域名对应ip并保存

案例练习

猜彩票

import random,time

a = '{}{}{}{}{}{}'.format(random.randint(1,9),random.randint(1,9),random.randint(1,9),random.randint(1,9),random.randint(1,9),random.randint(1,9))
print('本期彩票开奖号码为{}'.format(a))
time.sleep(2)
count = 1
while 1:
    b = '{}{}{}{}{}{}'.format(random.randint(1,9),random.randint(1,9),random.randint(1,9),random.randint(1,9),random.randint(1,9),random.randint(1,9))
    print('第{}次猜测彩票号码为{}'.format(count,b))
    count += 1
    if a == b:
        break
print('本期彩票开奖号码为{}'.format(a))

image.png

卖包子

import random
def mbz(user):
    print('用户{}买了{}个包子'.format(user,random.randint(1,50)))

with open('user.txt','r',encoding='utf-8') as a:
    for i in a:
        mbz(i.strip())

image.png
列表推导式

import random
def mbz(user):
    print('用户{}买了{}个包子'.format(user,random.randint(1,50)))

fd = [i.strip() for i in open('user.txt','r',encoding='utf-8').readlines()]

for i in fd:
    mbz(i)

image.png

域名批量转ip

了解

socket中gethostbyname是把域名转为ip的方法

import socket
def ip(url):
    ip = socket.gethostbyname(url)
    print(ip)

ip('www.baidu.com')

image.png

第一步:打开文件

import socket
urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines()]

for i in urls:
    print(i)

image.png

第二步:处理域名格式

我们只需要像www.baidu.com格式的
我们要处理的是前面的http://和最后面的/
先通过split方法分割,通过://分割成两个部分,分割后再取列表后面的部分,也就是[1]

import socket
urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines() ]

for i in urls:
    print(i.split('://')[1])

image.png
image.png
我们发现有的地址后面还有/,我们可以通过替换为空,这样我们就拿到想要的域名了

import socket
urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines() ]

for i in urls:
    print(i.split('://')[1].replace('/',''))

image.png

第三步:转换并存储

这时候配合就可以socket就可以实现转换了

import socket

urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines() ]
def ip(url):
    ip = socket.gethostbyname(url)
    print(ip)

for i in urls:
    ip(i.split('://')[1].replace('/',''))

image.png
但ip可能会重复,所以我们用集合来存

import socket

urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines() ]
ips = set()
def ip(url):
    ip = socket.gethostbyname(url)
    ips.add(ip)

for i in urls:
    ip(i.split('://')[1].replace('/',''))

print(ips)

image.png

第四步:把数据存文本中

这样存储后发现数据在一行里

import socket

urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines() ]
ips = set()
def ip(url):
    try:
        ip = socket.gethostbyname(url)
        ips.add(ip)
    except Exception as e:
        print(e)

for i in urls:
    ip(i.split('://')[1].replace('/',''))
with open('ip.txt','a+',encoding='utf-8')as a:
    a.writelines(ips)

image.png
可以设置集合每添加一次就换行一次,使用\n

import socket

urls = [i.strip() for i in open('url.txt','r',encoding='utf-8').readlines() ]
ips = set()
def ip(url):
    try:
        ip = socket.gethostbyname(url)
        ips.add(ip+'\n')
    except Exception as e:
        print(e)

for i in urls:
    ip(i.split('://')[1].replace('/',''))
with open('ip.txt','a+',encoding='utf-8')as a:
    a.writelines(ips)

image.png

标签:练习,socket,python,ip,random,url,urls,print,综合
From: https://www.cnblogs.com/JFSec/p/17792526.html

相关文章

  • python系统内置库
    学习目标1、了解os模块2、了解time模块3、了解random模块核心知识简单的说就是别人已经帮你写好复杂的操作了,而你只需要导入所需要的内置库,然后就可以调用里面的方法,使用也很简单,只需要import关键字导入即可使用os模块os模块主要有以下4个功能1、系统相关2、执行命......
  • python数据类型
    学习目标1、定义变量2、了解input输入3、熟悉列表list的功能与操作4、熟悉元组tuple的功能与操作5、熟悉集合set的功能与操作6、熟悉字典dict的功能与操作核心知识变量a='安全开发'print(a)print('====')a='安全测试'print(a)输出a=input('你是谁:')prin......
  • 初识python
    学习目标1、使用print输出内容2、熟悉字符串类型3、熟悉数字类型4、熟悉数字与字符串操作核心知识输出print可控制输出内容也可配合+、-、、/进行运算,和整数型配合可进行运算和字符型配合有不同效果,如+为拼接,为多次输出注:整数型如:123456,字符型需用引号包起来,可为中文......
  • Python 模块:创建、导入和使用
    什么是模块?将模块视为代码库。模块是一个包含一组函数的文件,您想要在应用程序中包含这些函数。创建一个模块要创建一个模块,只需将要包含在其中的代码保存在扩展名为.py的文件中:示例:将以下代码保存在名为mymodule.py的文件中:defgreeting(name):print("Hello,"+name......
  • c语言代码练习41
    问:实现在另一个数组中查找子字符串#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<assert.h>#include<string.h>intmain(){char*p1="abcdefgdef";char*p2="def";char*ret=strstr(p1,p2);if(r......
  • Python:控制台输入密码passwod的方法
    目录inputgetpasstermiosmsvcrtinputprint(input("pleaseinput:"))$python3demo.pypleaseinput:123456123456缺点:不安全getpassimportgetpassprint(getpass.getpass("pleaseinput:"))$python3demo.pypleaseinput:123456缺点:看不到输入的位数termi......
  • 收藏从未停止,练习从未开始——MYSQL游标存储过程IDEA快捷键配置SpringBoot入门到入土G
    “收藏从未停止,练习从未开始”,或许有那么一些好题好方法,在被你选中收藏后却遗忘在收藏夹里积起了灰?今天请务必打开你沉甸甸的收藏重新回顾,分享一下那些曾让你拍案叫绝的好东西吧!本人详解:(提醒:随笔)本人详解作者:王文峰,参加过2020年度博客之星,《Java王大师王天师》作者采购供应链共享......
  • [量化投资-学习笔记002]Python+TDengine从零开始搭建量化分析平台-MA均线的多种实现方
    MA均线时最基本的技术指标,也是最简单,最不常用的(通常使用EMA、SMA)。以下用两种不同的计算方法和两种不同的画图方法进行展示和说明。MA均线指标公式MA(N)=(C1+C2+C3+…+CN)/N目录方式一1.SQL直接查询均值2.使用pyplot进行绘图3.使用Grafana绘图方式二1.使用Python计......
  • python---数列内元素正倒相加实例
    a=list([1,21,5,3,1,23])b=list([7,4,6,3,2,1])x=int(input("请输入想从第几个数开始:"))y=int(input("请输入想到第几个数结束:"))c=[0,0,0,0,0,0]m=input("想要正着加吗?(T/F)")foriinrange(x-1,y):ifm=="T":c=a[i]+b[i]......
  • while语句练习(打印1-10)(加入continue)
    #include<stdio.h>intmain(){  inti=1;  //i从1开始  while(i<=10)//i小于等于10  {    i++;  //由于i++,所以从i=2开始,到11结束    if(i==5)    continue;//continue-继续,达到5时该代码从while重新循环    pri......