python+AI第二课

2019-11-05  本文已影响0人  M_小七
使用format

format 格式化输出
' '.format()是使用{}取代替传统的%
格式: <模板字符串>.format(<逗号分隔的参数>)
{}类似于生活中"槽"的概念

# -*- coding: utf-8 -*-
# @Time    : 2019/11/5 9:18
# @Author  : WenTing Men
# @Email   : wentingmen@163.com
# @File    : demo4.py
# @Software: PyCharm
name = '鲁班七号'
grade = 15
print('当前使用英雄为{},等级为{}级'.format(name, grade))
f-字符串

python3.6及以上版本中定义的一种参数化字符串方式,主要目的是让字符串格式化更加便捷,用{}标识变量, 但是不是使用{}进行占位。而是直接写入变量名

print(f'当前使用英雄为{name},等级为{grade}级')

练习:在控制台依次提示用户输入:姓名、公司、职位、电话、邮箱
按照以下格式输出:


公司名称

姓名 (职位)

电话:电话
邮箱:邮箱


name = input("请输入姓名:")
company = input("请输入公司:")
title = input("请输入职位:")
phone = input("请输入电话:")
email = input("请输入邮箱:")

print('*'*40)
print()
print(f'公司名称{company_name}')
print()
print(f'{name}({position})')
print(f'电话:{num}')
print(f'邮箱:{mail}')
print('*'*40)
标识符和保留字

标识符
标识符就是程序员自己命名的变量名,原则上标识符的命名要有见明知意的效果

#查看 Python 中的关键字
import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
变量的命名规则

在定义变量时,为了保证代码格式,= 的左右应该各保留一个空格
在 Python 中,如果变量名需要由二个或多个单词组成时,可以按照以下方式命名
每个单词都使用小写字母单词与单词之间使用 _下划线 连接
驼峰命名法
当变量名是由二个或多个单词组成时,还可以利用驼峰命名法来命名

运算符
运算符 描述 实例
+ -10 + 20 = 30
- 10 - 20 = -10
* 10 * 20 = 200
/ 10 / 20 = 0.5
// 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4
% 取余数 返回除法的余数 9 % 2 = 1
** 又称次方、乘方,2 ** 3 = 8
a = 10
b = 5
print(a + b)
# 15
print(a - b)
# 5
print(a * b)
# 50
print(a / b)
# 2.0
print(a ** b)
# 100000
print(a // b)
# 2
print(a % b)
# 0
运算符 描述
== 检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!= 检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
> 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
< 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>= 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<= 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True
a = 10
b = 20
a == b
# False
a != b
# True
a > b
# False
a < b
# True
a >= b
# False
a <= b
# True
运算符 逻辑表达式 描述
and x and y 只有 x 和 y 的值都为 True,才会返回 True否则只要 x 或者 y 有一个值为 False,就返回 False
or x or y 只要 x 或者 y 有一个值为 True,就返回 True只有 x 和 y 的值都为 False,才会返回 False
not not x 如果 x 为 True,返回 False如果 x 为 False,返回 True
a = True
b = False
a and b
# False
a or b
# True
not a
# False
not -1
# False
not 0
# True
运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c = a 等效于 c = c a
/= 除法赋值运算符 c /= a 等效于 c = c / a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
%= 取 模 (余数)赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c = a 等效于 c = c a
a = 10
b = 20
c = 0
c = a + b
print(c)
# 30
c += 10
print(c)
# 40
c -= a
print(c)
# 30
c *= a
print(c)
# 300
c /= a
print(c)
# 30.0
c %= a
print(c)
# 0.0
c = a ** 5
print(c)
# 100000
c //= b
print(c)
# 5000
print(b)
# 20
运算符 描述
** 幂 (最高优先级)
* / % // 乘、除、取余数、取整除
+ - 加法、减法
<= < > >= 比较运算符
== != 等于运算符
= %= /= //= -= += = *= 赋值运算符
not or and 逻辑运算符
条件语句

Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。
Python 程序语言指定任何非 0 和非空(None)值为 True,0 或者 None为 False。

if 判断条件:
    执行语句……
else:
    执行语句……

练习:

results = 59
if results >= 60:
    print ('及格')
else :
    print ('不及格')

练习:

lenght = float(input('输入刀子的长度'))

if lenght < 10 :
    print("您可以乘车")
else:
    print('您携带危险物品,您不可以乘车')
if 判断条件1:
    事情1……
elif 判断条件2:
    事情2……
elif 判断条件3:
    事情3……
else:
   事情4……

练习:

score = int(input('请输入您的成绩'))
if score >= 90 and score <= 100:
    print('您的成绩为优秀')
elif score >= 75 and score < 90:
    print('您的成绩为良好')
elif score >= 60 and score < 75:
    print('您的成绩为及格')
elif score >= 0 and score < 60:
    print('您的成绩为不及格')
else:
    print('您输入的成绩不合法')

注意:elif必须和if一起使用,否则会出错,else可以选择性使用,当以上条件都不满足时执行

if 条件1:
    满足条件1执行的事情
    if 条件2:
        满足条件2执行的事情

外层的if判断也可以是if else,内层的if判断也可以是if else
练习:

ticket = int(input('请出示您的车票')) # 0代表没车票,1代表有车票
if ticket == 1:
    print("请过安检")
    lenght = float(input('输入刀子的长度'))
    if lenght < 10:
        print('安检通过')
        print('终于可以见到他了,美滋滋~~~')
    else:
        print('没有通过安检')
        print('您携带危险物品,您不可以乘车')
else:
    print('您没有购买车票,不能乘车')

练习:猜拳游戏
键盘输入 剪刀(0)石头(1)布(2),电脑随机生成[0, 2],并判断输赢
不使用字典的情况下
方法1

from random import randint
player = int(input("剪刀石头布,请出拳:"))
computer = randint(0, 2)
if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
    print("恭喜玩家胜利")
elif player == computer:
    print("平手")
else:
    print("电脑胜利")

方法2

from random import randint
player = int(input("剪刀石头布,请出拳:"))
computer = randint(0, 2)
if player == 0:
    if computer == 2:
        print("恭喜玩家胜利")
    elif computer == 1:
        print("电脑胜利")
elif player == 1:
    if computer == 0:
        print("恭喜玩家胜利")
    elif computer == 2:
        print("电脑胜利")
elif player == 2:
    if computer == 1:
        print("恭喜玩家胜利")
    elif computer == 0:
        print("电脑胜利")
else:
    print("平手")
循环语句
image

一般编程语言都有循环语句,循环语句允许我们执行一个语句或语句组多次。

循环控制语句 描述
break 在语句块执行过程中终止循环,并且跳出整个循环
continue 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
pass pass 是空语句,是为占位
while 循环条件:
    循环体

例子:1.求1-100之间的累加和

i = 1
sum_i = 0
while i <= 100:
    print(f'当前执行的循环是第{i}次')
    sum_i += i
    i += 1
print(sum_i)

2.求1-100之间的偶数累加和

i = 1
sum_i = 0
while i <= 100:
    if i % 2 == 0:
        sum_i += i
    i += 1
print(sum_i)

3.累加和大于1000的时候输出值

i = 1
sum_i = 0
while i <= 100:
    sum_i += i
    if sum_i > 1000:
        break
    i += 1
print(sum_i)

while循环嵌套
在控制台中输出下面图形

*
* *
* * *
* * * *
* * * * *
i = 1
while i < 6 :
    print("* "*i)
    i += 1

或者

i = 1
while i < 6 :
    j = 1
    while j <= i:
        print("* ",  end='')
        j += 1

    print(end='\n')
    i += 1

while循环-课上练习

#九九乘法表
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%dX%d=%-2d"%(i,j,i*j),end = ' ')
        j += 1
    print()
    i += 1

#猜拳
from random import randint

i = 1
while i == 1:
    player = int(input("剪刀[0]石头[1]布[2],请出拳:"))
    computer = randint(0, 2)
    if player != 0 and player != 1 and player != 2:
        print("输入错误,请重新输出")

    elif (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
        print("恭喜玩家胜利")
        i = 2
    elif player == computer:
        print("平手")
    else:
        print("电脑胜利")
for循环

语法格式


image
for iterating_var in sequence:
  statements(s)

取出字符串

for zifuchuan in '李磊韩梅梅':
   print(zifuchuan)

for循环的计数
range()

for value in range(1,6):
   print(value)

使用for循环编写九九乘法表

#九九乘法表
for i in range(1, 10):
    for j in range(1, 10):
        print(j, "X", i, "=", i*j, "\t", end="")#默认结尾是换行的,变成换行的只需要end=“”即可
        if i == j:
            print("")

回顾猜数字练习

#猜数字
import random
min_num = int(input("请给定要猜的最大数字:"))
max_num = int(input("请给定要猜的最小数字:"))
#随机数生成一个数字,让用户猜这个数字
generate_num = random.randint(min_num, max_num)
count = 0
while True:
   count +=1
   guess_number = int(input("输入您猜的数字:"))
   if guess_number < generate_num:
       print("您猜小了")
   elif guess_number > generate_num:
       print("您猜大了")
   else:
       if count ==1:
           print("你也太厉害了吧,1次就猜对了,这是高手")
       elif count > 1 and count < 6:
           print("恭喜只用了:", count, "次就猜对了数字")
       else:
           print("你也太菜了", count, "次就才猜得出来,洗洗睡吧")

作业:
1.我想买车,买什么车决定于我在银行有多少存款
如果我的存款超过500万,我就买路虎
否则,如果我的存款超过100万,我就买宝马
否则, 如果我的存款超过50万,我就买迈腾
否则, 如果我的存款超过10万,我就买福特
否则, 如果我的存款10万以下 ,我买比亚迪

money = int(input('查看我的存款:'))
if money >= 500:
    print("我可以买路虎啦!")
elif money >= 100 and money < 500:
    print("我可以买宝马啦!")
elif money >= 50 and money < 100:
    print("我还可以买迈腾!")
elif money >= 10 and money < 50:
    print("我只能买福特了.")
else:
    print("我就能买的起比亚迪了.")

2.输入小明的考试成绩,显示所获奖励
成绩==100分,爸爸给他买辆车
成绩>=90分,妈妈给他买MP4
90分>成绩>=60分,妈妈给他买本参考书
成绩<60分,什么都不买

score = int(input('小明的考试成绩:'))
if score == 100:
    print("小明考了满分,爸爸给买辆车。")
elif score >= 90 and score < 100:
    print("成绩还不错,妈妈给买MP4")
elif score >= 60 and score < 90:
    print("需要努力,妈妈给买参考书")
else:
    print("成绩不好,什么都不买")

3.输入n的值,求出n的阶乘。

n = int(input("请输入数字n:"))
factorial = 1
for i in range(1, n+1):
    factorial *= i 
print(factorial)

或者使用math库

import math
n = int(input("请输入数字n:"))
print(math.factorial(n))  

4.折纸上月球
大家都看过科幻片《火星救援The Martian》吧,电影里航天员们在太空中碰到各种情况都是靠计算机模拟、计算来解决问题的。
我们在地球上也可以靠高大上的Python语言来解决问题。现在问题来了:我们都知道,月亮在一个椭圆形的轨道上绕地球公转,因此两者的距离是不断变化的,它们的最小距离是363300公里。现在我们都想去月球旅游(地球玩腻了,想换个口味),但是坐火箭上天一次就带辣么几个人,我们等不及。好消息,好消息,厂家现在开发出逆天神技——折纸上月球!
只需一张很大的A4纸,厚度为0.088毫米,折一次就0.176毫米,折两次就0.352毫米……多折几次就很高了。
穿上冲锋衣,拿上登山杖,带上自拍杆,我们爬着就可以上月球发朋友圈了。我就想问一句:要上月球,我们到底需要折多少次?


n=0
d=0.088
while d <= 363300*1000*1000:
   d = 2 * d
   n = n + 1
print(n)

答案

count = 0
n = 0.088
while 1:
   if(n>=363300*1000*1000):
       break
   n=n*2
   count=count+1
print(count)

5.篮球弹跳高度的计算
书呆子就是书呆子,打个篮球脑子也不闲着。这种人说好听的叫‘geek’,说不好听的就是叫‘nerd’。
这不,书呆子看着篮球在想:如果篮球从某一高度落下,每次落地后反弹回原来高度的一半再落下。
那么球在第10次落地时,共经过多少米呢? 第10次反弹多高? (你问我这个题是不是瞎编的?当然是了,你什么时候见过书呆子打篮球?)
输入:输入一个整数h,单位是米,表示球的初始高度。
输出:输出包含两行:
第1行:到球第10次落地时,一共经过的距离。
第2行:第10次弹跳的高度。
例如输入:20 对应输出:第一行:59.921875 第二行:0.01953125

h = int(input("请输入球的初始高度:"))
s = h
for i in range(1,11):
   h = h * 0.5
   s = s + h*2
print("一共经过{}\n第十次高度为{}\n".format(s,h))
上一篇下一篇

猜你喜欢

热点阅读