Python_2day

选择

布尔类型、数值和表达式

 

  • 注意:比较运算符的相等是两个等号,一个等到代表赋值
  • 在Python中可以用整型0来代表False,其他数字来代表True
  • 后面还会讲到 is 在判断语句中的用发
In [32]:
 
 
 
 
 
a = id(1)
b = id(1)
print(a,b)
# 因为a和b并不是同一个对象
a is b
 
 
 
4370970016 4370970016
Out[32]:
False
In [33]:
 
 
 
 
 
a = id(1)
b = a
a is b
 
 
Out[33]:
True
In [22]:
 
 
 
 
 
a = True
b = False
 
 
In [31]:
 
 
 
 
 
id(True)
 
 
Out[31]:
4370566624
In [ ]:
 
 
 
 
 
 
 
In [23]:
 
 
 
 
 
a == b
 
 
Out[23]:
False
In [24]:
 
 
 
 
 
a is b
 
 
Out[24]:
False
 

字符串的比较使用ASCII值

In [37]:
 
 
 
 
 
a = "jokar"
b = "jokar"
a > b
 
 
Out[37]:
False
 

肯定会给发数据划分啊

 

𝑁𝑗=1𝑥𝑗∑j=1Nxj

In [ ]:
 
 
 
 
 
 
 
 

EP:

 

  • 输入一个数字,判断其实奇数还是偶数
 

产生随机数字

  • 函数random.randint(a,b) 可以用来产生一个a和b之间且包括a和b的随机整数
In [38]:
 
 
 
 
 
import random
 
 
In [40]:
 
 
 
 
 
random.randint(0,1)
 
 
Out[40]:
1
In [ ]:
 
 
 
 
 
if condition:
    do someething
else:
    other
 
 
In [ ]:
 
 
 
 
 
for iter_ in xxx:
    do something
 
 
In [46]:
 
 
 
 
 
age = 10
Joker = eval(input('Name'))
print(Joker)
 
 
 
Nameage
10
 

产生一个随机数,你去输入,如果你输入的数大于随机数,那么就告诉你太大了,反之,太小了, 然后你一直输入,知道它满意为止

In [55]:
 
 
 
 
 
number =random.randint(0,5)
 
 
In [58]:
 
 
 
 
 
for i in range(5):
    input_  = eval(input('>>'))
    if input_ > number:
        print('太大啦')
    if input_ < number:
        print('太小啦')
    if number == input_:
        print('正好')
        break
 
 
 
>>0
太小啦
>>0
太小啦
>>0
太小啦
>>0
太小啦
>>0
太小啦
In [59]:
 
 
 
 
 
for i in range(5):
    print(i)
 
 
 
0
1
2
3
4
 

其他random方法

  • random.random 返回0.0到1.0之间前闭后开区间的随机浮点
  • random.randrange(a,b) 前闭后开
In [60]:
 
 
 
 
 
random.random()
 
 
Out[60]:
0.5903384303938066
In [61]:
 
 
 
 
 
import matplotlib.pyplot as plt
 
 
In [64]:
 
 
 
 
 
image=plt.imread('/Users/huwang/Downloads/cat.jpeg')
print(image*random.random())
plt.imshow(image)
 
. . .
 

EP:

  • 产生两个随机整数number1和number2,然后显示给用户,使用户输入数字的和,并判定其是否正确
  • 进阶:写一个随机序号点名程序
In [69]:
 
 
 
 
 
number_1 = random.randrange(0,10)
number_2 = random.randrange(0,10)
while 1:
    sum_ = eval(input('>>'))
    if sum_ == (number_1 + number_2):
        print('Congratulations! Correct~')
    else:
        print('Sorry~SB.')
 
. . .
In [ ]:
 
 
 
 
 
 
 
 

if语句

  • 如果条件正确就执行一个单向if语句,亦即当条件为真的时候才执行if内部的语句

  • Python有很多选择语句:

    • 单向if
    • 双向if-else
    • 嵌套if
    • 多向if-elif-else
  • 注意:当语句含有子语句的时候,那么一定至少要有一个缩进,也就是说如果有儿子存在,那么一定要缩进

  • 切记不可tab键和space混用,单用tab 或者 space

  • 当你输出的结果是无论if是否为真时都需要显示时,语句应该与if对齐

In [72]:
 
 
 
 
 
input_  = eval(input('>>'))
if input_ > number:
    print('太大啦')
if input_ < number:
    print('太小啦')
if number == input_:
    print('正好')
print('不要灰心')
 
 
 
>>1
正好
不要灰心
 

李文浩相亲测试树

  年龄

老 年轻
拜拜
帅 否 是 考虑一下 老婆 没有 有 马上结婚 回家的诱惑

代码写不出来的立马分手,从此社会上有多出一个渣男/渣女.

In [4]:
 
 
 
 
 
age = input('年轻嘛[y/n]')
if age == 'y':
    handsome = input('帅否[y/n]')
    if handsome == 'y':
        wife = input('有没有老婆[y/n]')
        if wife == 'y':
            print('回家的诱惑')
        else:
            print('立马结婚')
    else:
        print('考虑一下')
else:
    print('拜拜~')
 
 
 
年轻嘛[y/n]y
帅否[y/n]y
有没有老婆[y/n]y
回家的诱惑
 

EP:

  • 用户输入一个数字,判断其实奇数还是偶数
  • 进阶:可以查看下4.5实例研究猜生日
 

双向if-else 语句

  • 如果条件为真,那么走if内部语句,否则走else内部语句
 

EP:

  • 产生两个随机整数number1和number2,然后显示给用户,使用户输入数字,并判定其是否正确,如果正确打印“you‘re correct”,否则打印正确错误
 

嵌套if 和多向if-elif-else

 

In [ ]:
 
 
 
 
 
if score >= 80:
    gread = 'B'
elif score>=90:
    gread = 'A'
 
 
 

EP:

 

  • 提示用户输入一个年份,然后显示表示这一年的动物
  • 计算身体质量指数的程序
  • BMI = 以千克为单位的体重除以以米为单位的身高的平方
  •  

In [9]:
 
 
 
 
 
tizhong  = eval(input('体重'))
shengao = eval(input('身高'))
BMI = tizhong / shengao ** 2
if BMI<18.5 :
    print('超清')
elif 18.5<=BMI<25 :
    print('标准')
elif 25<=BMI<30 :
    print('超重')
else:
    print('超级无敌胖')
 
 
 
体重500
身高10000
超清
 

逻辑运算符

 

 

 

EP:

  • 判定闰年:一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年
  • 提示用户输入一个年份,并返回是否是闰年
  • 提示用户输入一个数字,判断其是否为水仙花数
 

实例研究:彩票

 

In [16]:
 
 
 
 
 
import random
 
 
In [25]:
 
 
 
 
 
number = random.randint(10,99)
print(number)
N = input('>>')
number_shi = number // 10
number_ge = number % 10
if N[0] == '0':
    N_shi = 0
else:
    N_shi = int(N) // 10
    N_ge = int(N) % 10
if number == int(N):
    print('10000')
# elif (number_shi == N_shi or number_shi==N_ge) and (number_ge == N_shi or number_ge==N_ge):
elif number_shi + number_ge == N_shi + N_ge:
    print('3000')
elif (number_ge ==N_ge or number_ge == N_shi) or (number_shi == N_ge or number_shi == N_shi):
    print('1000')
 
 
 
24
>>40
1000
In [3]:
 
 
 
 
 
a = "05"
a[0]
 
 
Out[3]:
'o'
In [22]:
 
 
 
 
 
05 // 10
 
 
Out[22]:
'J'
In [14]:
 
 
 
 
 
Number = eval(input('>>'))
bai = Number // 100
shi = Number // 10 % 10
ge = Number % 10
if bai**3 + shi **3 + ge **3 == Number:
    print('水仙花')
else:
    print('不是水仙花')
 
 
 
>>123
不是水仙花
In [15]:
 
 
 
 
 
223 // 10
 
 
Out[15]:
2
 

Homework

  • 1

 

In [26]:
 
 
 
 
 
import math
a,b,c = map(float,input().split(','))
s = b * b - 4 * a * c
if s > 0:
    r1 =(-b + math.sqrt(b * b - 4 * a *c)) / (2 * a)
    r2 =(-b - math.sqrt(b * b - 4 * a *c)) / (2 * a)
    print('%.6f and %.5f'%(r1,r2))
elif s == 0:
    r3 = -b / (2 * a)
    print(int(r3))
else :
    print('没有实数根')
 
 
 
1.0,3,1
-0.381966 and -2.61803
 
  • 2

 

In [4]:
 
 
 
 
 
import random
a = random.randrange(10,99)
b = random.randrange(10,99)
z = a + b
print(a,b,z)
jieguo = int(input())
if z == jieguo:
    print('真的')
else:
    print('假的')
 
 
 
89 15 104
87
假的
 
  • 3

 

In [18]:
 
 
 
 
 
x = int(input())
y = int(input())
a = x % 7
b = y % 7
if a == 0 or b == 0:
    print('星期日,未来是星期三')
elif a == 1 or b == 1:
    print('星期一,未来是星期四')
elif a == 2 or b == 2:
    print('星期二,未来是星期五')
elif a == 3 or b == 3:
    print('星期三,未来是星期六')
elif a == 4 or b == 4:
    print('星期四,未来是星期日')
elif a == 5 or b == 5:
    print('星期五,未来是星期一')
elif a == 6 or b == 6:
    print('星期六,未来是星期二')
 
 
 
1
3
星期一,未来是星期四
 
  • 4

 

In [13]:
 
 
 
 
 
a,b,c = map(int,input('输入三个整数').split(' '))
if a > b > c:
    print(a,b,c)
elif a > c > b:
    print(a,c,b)
elif b > a > c:
    print(b,a,c)
elif b > c > a:
    print(b,c,a)
elif c > a > b:
    print(c,a,b)
else:
    print(c,b,a)
 
 
 
输入三个整数2 3 6
6 3 2
 
  • 5

 

In [16]:
 
 
 
 
 
w,p = map(float,input().split(','))
w1,p1 = map(float,input().split(','))
s = p / w
y = p1 / w1
if s > y:
    print('第二个好')
else:
    print('第一个好')
 
 
 
50,24.59
25,11.99
第二个好
 
  • 6

 

In [ ]:
 
 
 
 
 
a,b = map(int,input().split(','))
if a % 4 == 0 and a % 100 != 0 or a % 400 == 0:
    c = 29
else:
    c = 28
if b == 1 or b == 3 or b == 5 or b == 7 or b == 8 or b == 10 or b == 12:
    d = 31 
elif b == 2:
    d = c
else:
    d = 30
print( '%f年%f月份有%f天'%(a,b,d))
 
 
 
  • 7

 

In [32]:
 
 
 
 
 
import random
a = random.choice(['正', '反'])
print(a)
s = str(input())
if a == s or a == y:
    print('正确')
else:
    print('错误')
 
 
 
反
反
正确
 
  • 8

 

In [4]:
 
 
 
 
 
import random
x = random.choice(["0","1","2"])
print(x)
y = [['0','2'],['1','0'],['2','1']]
z = input('ren')
if z == x:
    print('平手')
elif [z,x] in y:
    print('人赢')
else:
    print('电脑赢')
 
 
 
0
ren1
人赢
In [ ]:
 
 
 
 
 
 
 
 
  • 9

 

In [8]:
 
 
 
 
 
import math
year,m,q=map(int,input('请输入年月日').split(','))
j=math.floor(year/100)
k=year%100
h=(q+math.floor(26*(m+1)/10)+k+math.floor(k/4)+math.floor(j/4)+5*j)%7
week=['星期六','星期日','星期一','星期二','星期三','星期四','星期五']
print('Day of the week is %s'%week[h])
 
 
 
请输入年月日2012,5,12
Day of the week is 星期六
 
  • 10

 

In [56]:
 
 
 
 
 
import random
x = random.choice(['ace','2','3','4','5','6','7','8','9','10','jack','queen','king'])
y = random.choice(['梅花','红桃','方块','黑桃'])
print('The card you picked is the %s of %s' %(x,y))
 
 
 
The card you picked is the queen of 梅花
 
  • 11

 

In [48]:
 
 
 
 
 
x = int(input('输入一个三位整数'))
a = x % 10
b = x // 100
if a ==  b:
    print('是')
else:
    print('不是')
 
 
 
输入一个三位整数123
不是
 
  • 12

 

In [45]:
 
 
 
 
 
import math
a,b,c = map(float,input().split(' '))
if a + b > c and a + c > b and b + c > a:
    print('周长: %f' % (a + b + c))
    p = (a + b + c) / 2
else:
    print('不能构成三角形')
 
 
 
1 1 1
周长: 3.000000
posted @ 2019-08-02 08:48  唱跳rap篮球  阅读(190)  评论(0)    收藏  举报