# if 流程控制语句
print('Please type spam: ')
spam = input()
if spam == '1':
    print('Hello.')
elif spam == '2':
    print('Howdy.')
else:
    print('Greetings!')

##########################################################

for i in range(1,11,1):
    print(i)

print('------------------')
i = 1
while i <= 10:
    print(i)
    i += 1

##########################################################
    
# 九九乘法表
print('打印乘法表')
for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%d'%(j,i,i*j),end='\t')
    print('')

##########################################################    
    
import random

# 自定义函数
def getAnswer(answerNumber):
    if answerNumber == 1:
        return 'It is certain'
    elif answerNumber == 2:
        return 'It is decidedly so'
    elif answerNumber == 3:
        return 'Yes'
    elif answerNumber == 4:
        return 'Reply hazy try again'
    elif answerNumber == 5:
        return 'Ask again later'
    elif answerNumber == 6:
        return 'Concentrate and ask again'
    elif answerNumber == 7:
        return 'My reply is no'
    elif answerNumber ==8:
        return 'Outlook not so good'
    elif answerNumber == 9:
        return 'Very doubtful'

r = random.randint(1,9)
fortune = getAnswer(r)
print(r,fortune)

##########################################################

# 局部作用域不能使用其他局部作用域内的变量
def spam():
    eggs = 99
    bacon()
    print(eggs)

def bacon():
    ham = 101
    eggs = 0

spam()

##########################################################    
    
# 全局变量可以在局部作用域中读取
def spam():
    print(eggs)

eggs = 42

spam()
print(eggs)

##########################################################    
    
# 名称相同的局部变量和全局变量
def spam():
    eggs = 'spam local'
    print(eggs)

def bacon():
    eggs = 'bacon local'
    print(eggs)
    spam()
    print(eggs)

eggs = 'global'
bacon()
print(eggs)

# 'bacon local'
# 'spam local'
# 'bacon local'
# 'global'    
    
##########################################################        
    
# 在局部作用域申明全局变量
def spam():
    global eggs  # 在函数内申明全局变量 eggs
    eggs = 'spam'

eggs = 'global'
spam()
print(eggs)

# spam    
    
##########################################################        
    
# 异常处理1
def spam(divideBy):
    try:
        return 42 / divideBy
    except ZeroDivisionError:
        print('Error:Invalid argument')

print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
    
##########################################################

# 异常处理2
def spam(divideBy):
    return 42 / divideBy

try:
    print(spam(2))
    print(spam(12))
    print(spam(0))
    print(spam(1))
except ZeroDivisionError:
    print('Error,Invalid argument')

# print(spam(1)) 不会被执行,因为在执行 print(spam(0))时,由于分母为0,程序转去执行 except,而不会再返回执行 print(spam(1))

##########################################################

# 一个小程序:猜数字
import random
secretNumber = random.randint(1,20)
print('I am thinking of a number between 1 and 20: ')

# 最多循环6次,如果六次均为猜中,循环也会结束
for i in range(1,7):
    guess = input('Take a guess: ')
    guess = int(guess)
    if secretNumber > guess:
        print('Your guess is too low.')
    elif secretNumber < guess:
        print('Your guess is too high.')
    elif secretNumber == guess:
        break
if guess == secretNumber:
    print('Good job!You guessed my number in ' + str(i) + ' guesses')
else:
    print('Nope. The number I was thinking of was '+ str(i) + ' guesses')

##########################################################

# Collatz 序列
# 自定义一个名为 collatz()函数

def collatz(number):
    """
    自定义一个名为 collatz() 函数,接受一个实参
    如果 参数是偶数,则打印输出 number / 2,并返回该值
    如果 参数是奇数,则打印输出 3 * number +1,并返回该值
    """
    if number % 2 == 0:
        x = number // 2
        print(x)
        return x
    elif number % 2 == 1:
        y = 3 * number + 1
        print(y)
        return y

while True:
    print('Please type your number: ')
    inputNumber = input()
    try:
        inputNumber = int(inputNumber)
        if collatz(inputNumber) == 1:
            break
    except ValueError:
        print('Warming!!! Please type intValue')

#########################
        
# 用列表来存储用户的输入
# 先定义一个空列表
cats = []

while True:
    print('Enter the name of cat ' + str(len(cats) + 1) + (' Or enter nothing to stop.'))
    catName = input()
    if catName == '':
        break
    cats.append(catName)

print('The cats names are:')
print(cats)

##########################################################

# 遍历列表
supplies = ['pens','staplers','flame-throwers','binders',]  # 列表最后可以多一个英文逗号
for i in range(len(supplies)):
    print(supplies[i])

##########################################################

# in ,not in 判断列表是否包含某个特定值
myPets = ['Zophie','Pooka','Fat-tail',]

while True:
    print('Enter a pet name: ')
    petName = input()
    if petName in myPets:
        print(petName + ' is in our pets.')
        break
    elif petName not in myPets:
        print(petName + ' is not in our pets.')

##########################################################

# 用列表为多个变量同时赋值,变量数量必须和列表长度严格相等
cats = ['fat','black','loud',]
size,color,disposition = cats
print(size,color,disposition)

##########################################################

# 神奇8球和列表
import random

message = [
    'It is decidedly so',
    'It is certain',
    'Yes definitely',
    'Reply hazy try again',
    'Ask again later',
    'Concentrage and ask again',
    'My reply is no',
    'Outlook not so good',
    'Very doubtful',
]

num = random.randint(0,len(message)-1)
print(num)

print(message[num])

##########################################################

# 变量a赋给变量b,变量a变化不会带来变量b的变化,因为这是两个不同的变量
spam = 42
cheese = spam
spam = 100
print(spam)
print(cheese)

# 当把列表赋给一个变量时,实际上是把列表的'引用'赋给了变量
# 在变量必须保存可变数据类型的值时,例如列表或字典,Python就是用引用,
# 对于不可变的数据类型的值,例如字符串,整型或元组,Python变量就保存值本身
spam = [0,1,2,3,4,5,] # 变量 spam 保存的是列表值的引用,而不是列表值本身
cheese = spam # 变量 spam 把列表值的引用赋给了变量 cheese,至此,这两个变量都指向了同一个列表
cheese[1] = 'Hello'
print(cheese)
print(spam)

##########################################################

# 传递引用
def eggs(someParameter):
    someParameter.append('Hello')

spam = [1,2,3]

eggs(spam)
print(spam)

##########################################################

# copy模块的copy()
import copy

spam = ['A','B','C','D',]
cheese = copy.copy(spam)  # 创立了第二个列表
print(spam)
print(cheese)
cheese[1] = 42

print(spam)
print(cheese)
print('------------deepcopy-------------')

spam = ['A','B','C','D',[1,2,3]]
cheese = copy.copy(spam)
print(spam)
print(cheese)
cheese[4] = 42
print(spam)
print(cheese)

##########################################################

# 对列表进行追加/删除元素
bacon = [3.14,'cat',11,'cat',True]
print(bacon)
bacon.append(99)
print(bacon)
bacon.remove('cat')
print(bacon)

##########################################################

# 有趣小程序:逗号代码
# 自定义函数,实现的功能是 返回 'apples', 'bananas', 'tofu', and 'cats'
def func(spam):
    for i in range(0,len(spam)):
        try:
            if i == len(spam) - 1:
                spam[i] = 'and ' + spam[i]
                print(spam[i])
            else:
                print(spam[i], end=', ')
        except TypeError:
            print('警告:传入的列表值包含有非字符/字符串')

# 定义不同的列表,并多次调用函数
spam = ['apples','bananas','tofu','cats']
func(spam)

spam = ['apples',]
func(spam)

spam = ['apples','bananas','tofu','cats',12]
func(spam)

spam = ['apples','bananas']
func(spam)

##########################################################

# 遍历列表1
spam = ['apples','bananas','tofu','cats']
lenth = len(spam)
print(lenth)

for i in range(0,lenth):
    print(spam[i])

##########################################################

# 假遍历,并没有遍历每个元素,只是单纯的重复打印整个列表多次
spam = ['apples','bananas','tofu','cats']
for i in spam:
    print(spam)

# 结果如下:    
# ['apples', 'bananas', 'tofu', 'cats']
# ['apples', 'bananas', 'tofu', 'cats']
# ['apples', 'bananas', 'tofu', 'cats']
# ['apples', 'bananas', 'tofu', 'cats']    
    
##########################################################

# 字符图网格
grid = [
    ['.','.','.','.','.','.'],
    ['.','0','0','.','.','.'],
    ['0','0','0','0','.','.'],
    ['0','0','0','0','0','.'],
    ['.','0','0','0','0','0'],
    ['0','0','0','0','0','.'],
    ['0','0','0','0','.','.'],
    ['.','0','0','.','.','.'],
    ['.','.','.','.','.','.'],
]

length = len(grid)
for i in range(0,length):
    for j in range(0,len(grid[i])):
        print(grid[i][j],end='')
    print('')

Python语法练习相关推荐

  1. Python 语法小知识

    为什么80%的码农都做不了架构师?>>>    序列解包       将含有多个值的序列解开,然后把值存放到变量中,当函数或者方法返回元组时这个特性很有用,可以把返回的序列值直接赋值 ...

  2. python语法书籍推荐_python语法的书

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 四大基本语法分别从变量命名规则.缩进原则.特殊关键字和特殊运算符四个方面,总结 ...

  3. python身份运算符的语法规则_7 Python语法入门之与用户交互、运算符

    本文对应的视频讲解如下: 与用户交互:python快速入门(一)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 一 程序与用户交互 1.1.什么是与用户交互 用 ...

  4. python语法错误概述_python语法错误

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我是python中的新手,当我想在模块中编译代码时,我遇到语法错误:invail ...

  5. 人工智能实践:TensorFlow笔记学习(二)—— Python语法串讲

    Python语法串讲  大纲 2.1 Linux指令.HelloWorld 2.2 列表.元组.字典 2.3 条件语句 2.4 循环语句 2.5 turtle模块 2.6 函数.模块.包 2.7 类. ...

  6. python【数据结构与算法】Python语法查询大宝剑(全)

    最近发现自己语法基础捉急,从来没有系统学过python语法. 所以更新一份python基础语法查询大宝剑. 文章目录 1 标准库 1.1 math和cmath 1.2 string 1.3 rando ...

  7. python基本语法语句-python 语法基础篇 一

    安装篇 编辑篇: 编辑python 一 : 在终端环境下输入python命令,回车键运行.这种方式称为 交互方式. 1️⃣ 打开终端: 2️⃣ 输入python 回车 3️⃣ 输入python 语法 ...

  8. python语法手册-python语法手册

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 常用的也不超过十个,这种相对于更为复杂的html标记语言来说,markdown可谓 ...

  9. python语法教程-Python语法教程总结规范

    Python语法易错点记录 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar-- 心分享.心 ...

  10. python编程语法大全-python语法汇总

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. splitstriplen()for variable in range ...

最新文章

  1. 【js】绑定事件的两种方法
  2. linux下如何修改系统时间
  3. Linux下监控文件系统
  4. 登录plsql developer时候出现连接串问题导致的下拉列表中没有出现tnsnames.ora文件中配置的那些服务...
  5. js 中location 的学习
  6. C++ Primer学习随笔(一)
  7. c语言仓库管理系统链表,仓库管理系统 C语言 C++ 数据结构 链表 课程设计
  8. Java别说取余( )运算简单,你真的会吗
  9. 编写一个脚本判断某个用户是否处在活动模式_使用 TypeScript 编写爬虫
  10. Java ——异常处理
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的课堂考勤系统
  12. 实验一 命令解释程序的编写
  13. 使用VisualStudio开发php的图文设置方法
  14. Oracle查询优化改写技巧与案例总结三
  15. java复制文件乱码_为什么用JAVA写的一个复制文本文档的程序复制出来文本文档乱码...
  16. 并行磁共振成像——SENSE 敏感度编码成像
  17. u-boot-2010.09-for-tiny6410-v1.0支持sd卡SDHC卡启动
  18. 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接
  19. Php替换公众号图片替换,公众号文章发布后可以替换图片吗?公众号发出去的图片怎么替换?...
  20. 优化性能问题的一般方法

热门文章

  1. UVA 12307 Smallest Enclosing Rectangle(旋转卡壳)
  2. 29Flutter Sliver家族
  3. 帝国霸业服务器无限加载,帝国霸业银河生存1.0正式版开局生存流程指南
  4. 民生银行java面试_民生银行面试题目 是什么?
  5. 男孩取名分享:光彩夺目、聪明机灵的男孩名
  6. ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
  7. PHP中smart原则,SMART原则的五大原则是什么
  8. 马云开酒吧了,酒吧叫“平头哥”,真猛~
  9. 网页打印问题-页面显示不全
  10. 计算机配置时能关机吗,怎么设置时间让电脑自动关机?