Python 3
不可信
File
Edit
View
Insert
Cell
Kernel
Widgets
Help
File
Edit
View
Insert
Cell
Kernel
Widgets
Help
运行
选择
布尔类型、数值和表达式
布尔类型、数值和表达式
注意:比较运算符的相等是两个等号,一个等到代表赋值
在Python中可以用整型0来代表False,其他数字来代表True
后面还会讲到 is 在判断语句中的用发
In [32]:
在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]:
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]:
In [37]:
a = "jokar"
b = "jokar"
a > b
Out[37]:
False
Markdown
https://github.com/younghz/Markdown
https://github.com/younghz/Markdown
肯定会给发数据划分啊
∑
?
?=1
?
?
∑j=1Nxj
In [ ]:
?
?=1
?
?
∑j=1Nxj
In [ ]:
EP:
输入一个数字,判断其实奇数还是偶数
产生随机数字
函数random.randint(a,b) 可以用来产生一个a和b之间且包括a和b的随机整数
In [38]:
函数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
10
产生一个随机数,你去输入,如果你输入的数大于随机数,那么就告诉你太大了,反之,太小了, 然后你一直输入,知道它满意为止
In [55]:
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]:
太小啦
>>0
太小啦
>>0
太小啦
>>0
太小啦
>>0
太小啦
In [59]:
for i in range(5):
print(i)
0
1
2
3
4
1
2
3
4
其他random方法
random.random 返回0.0到1.0之间前闭后开区间的随机浮点
random.randrange(a,b) 前闭后开
In [60]:
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]:
产生两个随机整数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 [ ]:
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]:
年龄
老 年轻
拜拜
帅 否 是 考虑一下 老婆 没有 有 马上结婚 回家的诱惑
代码写不出来的立马分手,从此社会上有多出一个渣男/渣女.
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
回家的诱惑
帅否[y/n]y
有没有老婆[y/n]y
回家的诱惑
EP:
用户输入一个数字,判断其实奇数还是偶数
进阶:可以查看下4.5实例研究猜生日
用户输入一个数字,判断其实奇数还是偶数
进阶:可以查看下4.5实例研究猜生日
双向if-else 语句
如果条件为真,那么走if内部语句,否则走else内部语句
如果条件为真,那么走if内部语句,否则走else内部语句
EP:
产生两个随机整数number1和number2,然后显示给用户,使用户输入数字,并判定其是否正确,如果正确打印“you‘re correct”,否则打印正确错误
产生两个随机整数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
超清
身高10000
超清
逻辑运算符
EP:
判定闰年:一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年
提示用户输入一个年份,并返回是否是闰年
提示用户输入一个数字,判断其是否为水仙花数
判定闰年:一个年份如果能被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]:
>>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]:
不是水仙花
In [15]:
223 // 10
Out[15]:
2
Homework
1
In [3]:
1
In [3]:
import math
for i in range(3):
a,b,c=map(float,input('Enter a,b,c:').split(','))
final1=(-b+(b**2-4.0*a*c)**0.5)/2*a
final2=(-b-(b**2-4.0*a*c)**0.5)/2*a
final=b**2-4.0*a*c
if final > 0:
print('The roots are %.6f and %.5f'%(final1,final2))
if final == 0:
print('The root is%d'%(final1))
if final < 0:
print('The equation has no real roots')
Enter a,b,c:1.0,3,1
The roots are -0.381966 and -2.61803
Enter a,b,c:1,2.0,1
The root is-1
Enter a,b,c:1,2,3
The equation has no real roots
The roots are -0.381966 and -2.61803
Enter a,b,c:1,2.0,1
The root is-1
Enter a,b,c:1,2,3
The equation has no real roots
2
In [10]:
In [10]:
import random
A = int(input('请输入这两个整数的和:'))
a = random.randint(0,100)
b = random.randint(0,100)
B = a+b
if A==a+b:
print('真')
else:
print('假,且结果为:{}'.format(B))
请输入这两个整数的和:19
假,且结果为:139
假,且结果为:139
3
In [4]:
In [4]:
today = int(input("Enter today's day:"))
future = int(input("Enter the number of days elapsed since today:"))
week = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
futureweek = today + future
ok=0
ok = futureweek % 7
print("Today is %s and the future day is %s"%(week[today],week[ok]))
Enter today's day:0
Enter the number of days elapsed since today:31
Today is Sunday and the future day is Wednesday
Enter the number of days elapsed since today:31
Today is Sunday and the future day is Wednesday
4
In [19]:
In [19]:
a,b,c=map(float,input('请输入3个整数').split(','))
if a<b<c:
print('从小到大的顺序为%d %d %d'%(a,b,c))
elif b<a<c:
print('从小到大的顺序为%d %d %d'%(b,a,c))
elif b<c<a:
print('从小到大的顺序为%d %d %d'%(b,c,a))
elif a<c<b:
print('从小到大的顺序为%d %d %d'%(a,c,b))
elif c<a<b:
print('从小到大的顺序为%d %d %d'%(c,a,b))
elif c<b<a:
print('从小到大的顺序为%d %d %d'%(c,b,a))
请输入3个整数3,2,1
从小到大的顺序为1 2 3
从小到大的顺序为1 2 3
5
In [22]:
In [22]:
a,b=map(float,input('Enter weight and price for package 1:').split(','))
c,d=map(float,input('Enter weight and price for package 2:').split(','))
f=b/a
e=d/c
if e<f:
print('package 2 has the better price')
if e==f:
print('package 2 and package are equle')
if f<e:
print('package 1 has the better price')
Enter weight and price for package 1:50,24.59
Enter weight and price for package 2:25,11.99
package 2 has the better price
Enter weight and price for package 2:25,11.99
package 2 has the better price
6
In [25]:
In [25]:
y = int(input('输入月份:'))
n = int(input('输入年份:'))
if n % 4 == 0 and n % 100 != 0 or n % 400 == 0:
if y == 2:
print('%d年%s月份有29天'%(n,y))
elif y in (1, 3, 5, 7, 8, 10, 12):
print('%d年%s月份有31天'%(n,y))
else:
print('%d年%s月份有30天'%(n,y))
else:
if y == 2:
print('%d年%s月份有28天'%(n,y))in
elif y in (1, 3, 5, 7, 8, 10, 12):
print('%d年%s月份有31天'%(n,y))
else:
print('%d年%s月份有30天'%(n,y))
输入月份:3
输入年份:2005
2005年3月份有31天
输入年份:2005
2005年3月份有31天
7
In [26]:
In [26]:
import random
A=str(input('请猜测硬币是正面还是反面:'))
B=random.choice(['正,反'])
if A==B:
print('恭喜你猜对了')
else:
print('很可惜猜错了')
请猜测硬币是正面还是反面:正
很可惜猜错了
很可惜猜错了
8
In [30]:
In [30]:
import numpy as np
x = np.random.choice(['0','1','2'])
n = str(input('Scissor (0), rock (1), paper (2): '))
def jg(x):
if x == 0:
str1 == 'scissor'
elif x == 1:
str1 == 'rock'
elif x == 2:
str1 == 'paper'
str2 = jg(n)
if x == '0':
if n == '0':
print('The computer is %s. You are %s too.It is draw.'%(x,n))
elif n == '1':
print('The computer is %s. You are %s.You won.'%(x,n))
elif n == '2':
print('The computer is %s. You are %s.It is lose'%(x,n))
if x == '1':
if n == '0':
print('The computer is %s. You are %s.It is lose'%(x,n))
elif n == '1':
print('The computer is %s. You are %s too.It is draw.'%(x,n))
elif n == '2':
print('The computer is %s. You are %s.,You won.'%(x,n))
if x == '2':
if n == '0':
print('The computer is %s. You are %s.,You won.'%(x,n))
elif n == '1':
print('The computer is %s. You are %s.It is lose'%(x,n))
elif n == '2':
print('The computer is %s. You are %s too.It is draw.'%(x,n))
Scissor (0), rock (1), paper (2): 1
The computer is 1. You are 1 too.It is draw.
The computer is 1. You are 1 too.It is draw.
9
In [ ]:
In [ ]:
def calculateDayofWeek(q,m,k,j):
h = (q + (26*(m + 1) // 10) + k + (k // 4) + (j // 4) + 5*j) % 7#泽勒一致性
return h
def info_enter():
year = eval(input("请输入年份:"))
j = year // 100#世纪数
month = eval(input("请输入月份:"))
if month == 1:
m = 13
k = year % 100 - 1#年份
elif month == 2:
m = 14
k = year % 100 - 1#年份
else:
m = month
k = year % 100#年份
day = eval(input("请输入月份中哪一天:"))
q = day
return q, m, k, j,day,month,year
if __name__ == "__main__":
q,m,k,j,day,month,year = info_enter()
#求出日期对应着一个星期的哪一天
h = calculateDayofWeek(q, m, k, j)
if h == 0:
week = 'Saturday'
elif h == 1:
week = 'Sunday'
elif h == 2:
week = 'Monday'
elif h == 3:
week = 'Tuesday'
elif h == 4:
week = 'Wednesday'
elif h == 5:
week = 'Thursday'
elif h == 6:
week = 'Friday'
print(str(year)+'-'+str(month)+'-'+str(day)+" is "+week+' of the week.')
10
In [34]:
import random
A=random.choice(['Ace','2','3','4','5','6','7','8','9','10','Jack','Queen,King'])
B=random.choice(['梅花','红桃','方块','黑桃'])
print('The card you picked is the {} of {}'.format(A,B))
The card you picked is the 10 of 红桃
11
In [1]:
In [1]:
A=float(input('Enter a three-digit integer:'))
def is_palindrome(num):
temp = num
total = 0
while temp > 0:
total = total * 10 + temp % 10
temp //= 10
return total == num
num = int(input('Enter a three-digit interger : '))
a = is_palindrome(num)
if a == True:
print('%d is a palindrome' %num)
elif a == False:
print('%d is not a palindrome' %num)
Enter a three-digit integer:123
Enter a three-digit interger : 121
121 is a palindrome
Enter a three-digit interger : 121
121 is a palindrome
12
In [2]:
In [2]:
import math
a,b,c = map(int,input('Enter three edges: ').split(','))
if a + b > c and a + c > b and b + c > a:
l = a + b + c
print('The perimeter is %d' % (a + b + c))
else:
print('Error')
Enter three edges: 1,1,1
The perimeter is 3
In [ ]:
The perimeter is 3
In [ ]: