python3 认真学习的第二天,从零开始

#剪刀石头布的小游戏
#和第一天的代码相比,通过编写函数的方式来显示电脑出的什么,代码没有那么臃肿
#学习参考书李宁老师的python从菜鸟到高手

     import random
        i=random.randint(1,3)
        user=int(input('请出拳(1剪刀2石头3布)'))
        assert 1<=user<=3,'输入的值有误,请输入正确的数值' 
        def cs1(l):
            if i == 1:
                return '剪刀'
            elif i==2:
                return '石头'
            else:
                return '布'
        l=i
        if i==user:
            print('平手')
            print('电脑出的是:',cs1(l),sep='')
        elif (user==1 and i==3) or (user==2 and i==1) or (user==3 and i==2):
            print('我赢了')
            print('电脑出的是:',cs1(l),sep='')
        else:
            print('电脑赢')
            print('电脑出的是:',cs1(l),sep='')

#使用exec和eval执行求值字符串
 exec('i=20')
 exec('print(i)')
20
 print(i*i)
400
 from random improt randint
  File "<stdin>", line 1
    from random improt randint
                     ^
SyntaxError: invalid syntax
 from random import randint
 randint(1,20)
10
 exec('randint=30')
 randint(1,20)#赋值之后randint函数无法使用
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
 exec('randint=30',scope)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'scope' is not defined
 from random import randint
 randint(1,20)
17
 scope={}
 exec('randint=30',scope)
 randint(1,20)#把赋值放入一个字典就不会和已有函数冲突
4
 scope.keys()
dict_keys(['__builtins__', 'randint'])#字典中存在randint
 a=20
 args={'a':20,'b':30}
 scope={}
 exec('print(a+b)',scope,args)
50
 eval('1+2-4')#exec不会提供返回值,eval提供返回值
-1
 eval('2*(6-2)')
8
 scope={'x':20}
 args={'y':30}
 args.keys
<built-in method keys of dict object at 0x000000000255A678>
 scope.keys
<built-in method keys of dict object at 0x0000000001CFC480>
 eval('x+y',scope,args)
50

scope={}
codes=''
print('',end='')
while True:
    code=input('')
    if code =='':
        exec(codes,scope)
        codes=''
        print('',end='')
        continue
    codes += code +'\n'
#a,b,c=10,20,30
#print(a*b*c)
#6000
#判断奇偶数,end退出
while True:
    a=input('请输入一个数')
    if a=='end':
        break
    num=int(a)
    if num%2 == 0:
        print('这个数是偶数')
    else:
        print('这个数是奇数')
#输入行数打印菱形
i=int(input('请输入行数,必须是奇数!'))
assert i%2==1,'数值有误'
if i%2 != 0:
    y=i//2
    x=1
    k=y
    while k>=0:
        print(' ' * k,end='')
        print('*' * (2*x-1))
        k -= 1
        x+=1
    x-=2
    k +=2
    while k<=y:
        print(' ' * k,end='')
        print('*' * (2*x-1))
        k+=1
        x-=1

#模拟计算器
while True:
    expression = input("calc:")
    if expression == "exit":
        break
    print(expression,"=", eval(expression))

#列表和元组
names=['my','name','is','a','pig']
number=[1,2,3,4,5,6,7]
salary=[5.0,6.0,7.0,8.0]
flags=[True,False,True,False]
values=[names,number,salary,flags,['a','b','c']]
for value in values:
    print(value)


#分片、加、乘
omg=input('输入年份')[3]
print(omg)

import re
months=['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
year=input('年:')
assert 1<=int(year)<=9999,'输入的值有误'
month=input('月:')
assert 1<=int(month)<=12,'输入的值有误'
day=input('日:')
assert 1<=int(day)<=31,'输入的值有误'


monthname=months[int(month)-1]
print(year + '年'+ monthname + day +'日') 
#切片
>>> s='123456789'
>>> print(s[8:9])
9
>>> print(s[2:9])
3456789
>>> print(s[2:10])
3456789
>>> print(s[2:111])
3456789
>>> print(s[0:9])
123456789
>>> print(s[1:9])
23456789
>>> print(s[1:8])
2345678
>>> number=[1,2,3,4,5,6,7,8]
>>> print(number[-3:-1])
[6, 7]
>>> print(number[-3:-0])
[]
>>> print(number[3:-0])
[]
>>> print(number[0:3])
[1, 2, 3]
>>> print(number[-3:])
[6, 7, 8]
>>> print(number[-3:8])
[6, 7, 8]
>>> print(number[:])
[1, 2, 3, 4, 5, 6, 7, 8]
>>> print(number[:3])
[1, 2, 3]
>>> print(number[1:6:2])
[2, 4, 6]
>>> print(number[1:8:2])
[2, 4, 6, 8]
>>> print(number[:7:2])
[1, 3, 5, 7]
>>> print(number[:8:2])
[1, 3, 5, 7]
>>> print(number[::2])
[1, 3, 5, 7]
>>> print(number[4::2])
[5, 7]
>>> print(number[8:2:-2])
[8, 6, 4]
>>> print(number[8:2:-1])
[8, 7, 6, 5, 4]
>>> print(number[8:2:0])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: slice step cannot be zero

url=input('请输入网址:')#https://www.baidu.com
scheme=url[:5]
host=url[8:]
print('scheme:',scheme,'\n',"host:",host)

n=int(input('请输入一个整数:'))
numbers=range(1,n)
number1=numbers[0::2]
number2=numbers[1::2]
for number in number1:
    print(number,end=' ')
print('')
print(' ',end = '')
for number in number2:
    print(number,end=' ')
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值