python字符串和循环语句小测试

Posted mayaohui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python字符串和循环语句小测试相关的知识,希望对你有一定的参考价值。

1,用pip安装ipython

1,解决依赖
yum install openssl-devel zlib-devel bzip2-devel expat-devel gdbm-devel tk-devel tcl-devel readline-devel sqlite-devel libX11-devel libX11 tkinter gcc gcc-c++ epel-release  
2,安装python36并且在/opt/下做一个虚拟目录

    yum -y install python36
    cd /opt/
    python36 -m venv py3
3,进入虚拟目录
    source /opt/py3/bin/activate
4,用pip安装ipython
    pip  install  ipython
5,可能会需要更新pip 
   pip   install --upgrade  pip 

2,tmpstr=‘18801118888-Shanghai’取出‘-‘ 分隔的最后一部分,并且将其倒叙重复第二遍,变成大写并且以40个字符的宽度居中显示出来。同时,输出十进制123的二进制,八进制和十六进制的值

tmpstr=18801118888-Shanghai
a=tmpstr.split(-)[1]
print(a)
i=1
while i<3:
        print(a[::-1])
        i=i+1
a=a.upper()
print(a.center(40))
b=123
print(bin(b))
print(oct(b))
print(hex(b))

3,斐波那契数列,fib=[1,1] 要求输出一个交互界面,当用户输入数字时显示相应位置的斐波那契数列。如果用户输入exit或者quit则退出程序。如果,用户输入的是一个非自然数则提示用户输入错误并且告诉用户应该如何使用

def fib1(num):
        fib=[1,1]
        while len(fib)<num:
                tmp=fib[-1]+fib[-2]
                fib.append(tmp)
        return fib[num -1]
while True:
        num=input(please a number:)
        num=num.strip().lower()
        if num==quit or num==exit:
                break
        try :
                num=int(num)
                ret=fib1(num)
                print(ret)
        except:
                print( is not a shuzi.format(num))

4,执行程序,用户输入一下年份,打印此年是平年还是闰年。

①、某年能被4整除且不能被100整除的为闰年(2004是闰年,1901年不是闰年)
②、某年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
③、对于数值很大的年份(不小于3200),这年如果能整除3200,并且能整除172800则是闰
年。如172800年是闰年,3200、86400年不是闰年(因为虽然能整除3200,但不能整除
172800)

year=int(input(please input a year:))
if year >=3200 :
        if year % 172800==0:
                print(is ruinina)
        else :
                print(pingnian)
else :
        if year % 4==0 and year % 100 !=0:
                print(runnina)
        elif year % 400 ==0 :
                print(runnina)
        else:
                print(pingnian)

5,猜数游戏,程序随机生成一个1-100之间的整数,然后和用户交互让用户猜生成的数是多少。如果数猜大了,则输出"too big",再次等待用户输入猜数。如果用户猜小了,则输出"too small" ,再次进入用户输入 猜数。如果用户猜对了,刚输出"Surprise! you are right!"并退出程序。

from random import randint
randnum=randint(1,100)
while True:
        guess=int(input(please a number 1-100 :))
        if guess>randnum :
                print(dayu)
        elif guess<randnum:
                print(xiaoyu)
        else :
                print(you are right)
                break
~                       

6,列表 mylist = [‘a‘,‘b‘,‘a‘,‘ab‘,66,66,6,88,8,88] 去重列表,并打印出每个元素出现的次数,(使用字典)。

mylist = [a,b,a,ab,66,66,6,88,8,88]
d=
for i in mylist:
        val=d.get(i,0)
        d[i] =val+1
print(d)

7,读取/etc/passwd和/etc/shadow文件将root\\bin\\nobody 三个用户的每个用户的“用户名,密码,uid,家目录”分别打印成一行。

def find_user(file,user):
        with open(file, r) as f:
                for line in f:
                        if line.startswith(:.format(user)):
                                return line
for user in [root,bin,nobody]:
        user_passwd = find_user(/etc/passwd,user)
        user_shadow = find_user(/etc/shadow,user)
        ret = []
        tmp = user_passwd.strip().split(:)
        ret.append(tmp[0])
        ret.append(tmp[2])
        ret.append(tmp[5])
        tmp = user_shadow.strip().split(:)
        ret.insert(1,tmp[1])
        print(ret)

8,处理以下文件打印出每个算出每个学生的平均成绩并保存到/root/ret.csv,保存时每一列的分隔符必须为英文逗号.

#cat /root/stu.txt
姓名 语文 数学 英语 学生平均分
阿波罗 80 74 89
雅典娜 90 68 78
波塞冬 78 50 59
美杜莎 79 53 58

结果是:
#cat /root/ret.csv
姓名,语文,数学,英语,学生平均分
阿波罗 ,80 ,74 ,89
雅典娜 ,90 ,68 ,78
波塞冬 ,78 ,50 ,59
美杜莎 ,79 ,53 ,58

def save_line(data,file):
        with open(file,a) as f:
                f.write(data)
def handle_line(line):
        ret=line.split()
        tmp=ret[1:]
        tmp=[int(i) for i in tmp]
        tmp=sum(tmp) / len(tmp)
        tmp=0:.1f.format(tmp)
        ret.append(tmp)
        return ,.join(ret)
with open(stu.txt,r) as f:
        first_line=f.readline()
        first_line=,.join(first_line.split())
        save_line(\\n.format(first_line),ret.csv)
        for line in f:
                tmp=handle_line(line)
                save_line(\\n.format(tmp),ret.csv)

上面代码若不成功,可以尝试执行以下代码

f=open(/root/stu.txt)
l=[]
for i in f.readlines():
   m=i.replace( ,,)
   m=m.replace(\\n,‘‘)
   n=m.split(,)
   if 学生平均分 in n[-1]:
      l.append(m)
   else:
      j=(int(n[1])+int(n[2])+int(n[3])) /3
      j=round(j,2)
      l.append(,.format(m,j))
f.close()
g=open(/root/ret.csv,w)
for x in l:
   x=x+\\n
   g.write(x)
g.close(

 

 

9,用ansible搭建nginx

1,安装ansible  :yum -y install ansible
2,做免密登录:ssh-keygen -t rsa
                       ssh-copy-id 192.168.111.144
3,创建资产: 在 /etc/ansible/hosts 添加
[test1]
192.168.111.144
4,给111.144安装nginx依赖包
ansible test1 -m yum -a "name=openssl-devel,zlib-devel,pcre-devel state=installed"
5,创建用户和组
ansible test1 -m group -a  "name=nginx system=yes"
ansible test1 -m user -a "name=nginx groups=nginx system=yes"
6,给test1下载nginx
nsible test1 -m copy -a "src=/root/nginx-1.14.0.tar.gz dest=/root/nginx-1.14.0.tar.gz"
7,解压并安装
ansible test1  -a "tar zxf nginx-1.14.0.tar.gz"

ansible test1 -m shell -a "chdir=/root/nginx-1.14.0 

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 

ansible test1 -m shell -a "chdir=/root/nginx-1.14.0

 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module  --with-pcre "

ansible test1 -m shell -a "chdir=/root/nginx-1.14.0 make  && make install "

8,创建软连接
ansible test1 -m shell -a "ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin"

9,启动nginx
 ansible test1 -m shell -a "nginx"
10,测试
ansible  test1  -m shell -a "curl  -I 192.168.111.144

10,用Django部署hello world 网站(页面渲染)

查看  : https://www.cnblogs.com/mayaohui/p/11347547.html

以上是关于python字符串和循环语句小测试的主要内容,如果未能解决你的问题,请参考以下文章

Python学习第79天(控制语句循环和字符串对象)

Python学习第79天(控制语句循环和字符串对象)

python语言如何结尾?

python考前复习,python基础语法知识点整理

Python入门-4控制语句:06for循环结构-遍历各种可迭代对象-range对象

Python的语言基础总结之循环与字符串操作