(16) python补充

num2 = 100
sum1 = lambda num1 : num1 + num2 
num2 = 10000
sum2 = lambda num1 : num1 + num2 

print( sum1( 1 ) )#10001
print( sum2( 1 ) )#10001

lambda 表达式中的 num2 是一个自由变量,在运行时绑定值,而不是定义时就绑定,这跟函数的默认值参数定义是不同的。
打印乘法表
占位符

#方法1
for i in range(1, 10):
    for j in range(1, i+1):
 # end='' 意思是末尾不换行,加空格
        print('{}x{}={}\t'.format(i, j, i*j), end='') 
    print()

#方法2
for m in range(1, 10):
    for n in range(1, m+1):
        print('%d*%d=%d\t'%(n,m,n*m), end='')
 
    print()

while 与for (待补充)

从键盘获取输入信息:input
在 Python 中可以使用 input 函数从键盘等待用户的输入
用户输入的 任何内容 Python 都认为是一个 字符串

格式化输出:print
如果希望输出文字信息的同时,一起输出 数据,就需要使用到 格式化操作符
% 被称为 格式化操作符,专门用于处理字符串中的格式
包含 % 的字符串,被称为 格式化字符串
% 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符

格式化字符 含义
%s 字符串
%d 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f 浮点数,%.2f 表示小数点后只显示两位
%% 输出 %

随机数生成

import random
#导入模块后,可以直接在 模块名称 后面敲一个 . 然后按 Tab 键,会提示该模块中包含的所有函数
#random.randint(a, b) ,返回 [a, b] 之间的整数,包含 a 和 b

random.randint(12, 20)  # 生成的随机数n: 12 <= n <= 20   
random.randint(20, 20)  # 结果永远是 20   
random.randint(20, 10)  # 该语句是错误的,下限必须小于上限。

随机数的小游戏

import random

# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))

# 电脑 随机 出拳 —— 先假定电脑只会出石头,完成整体代码功能
computer = random.randint(1, 3)

print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player, computer))

# 比较胜负
# 1 石头 胜 剪刀
# 2 剪刀 胜 布
# 3 布 胜 石头
# if (()
#        or ()
#        or ()):
if ((player == 1 and computer == 2)
        or (player == 2 and computer == 3)
        or (player == 3 and computer == 1)):

    print("欧耶,电脑弱爆了!")
# 平局
elif player == computer:
    print("真是心有灵犀啊,再来一盘")
# 其他的情况就是电脑获胜
else:
    print("不服气,我们决战到天明!")
import random
guess_list = ["石头", "剪刀", "布"]
win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]

while True:
    computer = random.choice(guess_list)
    people = input('请输入:石头,剪刀,布\n').strip()
    if people not in guess_list:
        continue
    elif computer == people:
        print ("平手,再玩一次!")
    elif [computer, people] in win_combination:
        print ("电脑获胜,再玩,人获胜才能退出!")
    else:
        print ("人获胜!")
        break

函数

def print_code(code):
    print(code)
    #return None
print_code('python')  # python

def add(x,y):
    result=x+y
    return result
a = add(1,2)
print(a)  # 3

def add1(x,y):
    result = x + y
    print(result)
add1(1,2)  # 3

def add2(x,y):
    result = x + y
    print('%d + %d = %d'%(x,y,x+y))
add2(1,2)  # 1 + 2 = 3

多值参数

有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数。

python 中有 两种 多值参数:

参数名前增加 一个 * 可以接收 元组
参数名前增加 两个 ** 可以接收 字典

一般在给多值参数命名时,习惯使用以下两个名字

*args —— 存放 元组 参数,前面有一个 *
**kwargs —— 存放 字典 参数,前面有两个 **

def demo(num, *args, **kwargs):

    print(num)
    print(args)
    print(kwargs)


demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)
#1
#(2, 3, 4, 5)
#{'name': '小明', 'age': 18, 'gender': True}

demo(1,(2,3,4,5),{"name":"小明", "age":18, "gender":True})
#1
#((2, 3, 4, 5), {'name': '小明', 'age': 18, 'gender': True})
#{}

demo(1,(2,3,4,5), name="小明", age=18, gender=True)
#1
#((2, 3, 4, 5),)
#{'name': '小明', 'age': 18, 'gender': True}

元组和字典的拆包
在调用带有多值参数的函数时,如果希望:
将一个 元组变量,直接传递给 args
将一个 字典变量,直接传递给 kwargs
就可以使用 拆包,简化参数的传递,拆包 的方式是:
在 元组变量前,增加 一个 *
在 字典变量前,增加 两个 *

def demo(*args, **kwargs):

    print(args)
    print(kwargs)

# 需要将一个元组变量/字典变量传递给函数对应的参数
gl_nums = (1, 2, 3)
gl_xiaoming = {"name": "小明", "age": 18}

# 会把 num_tuple 和 xiaoming 作为元组传递个 args
demo(gl_nums, gl_xiaoming)
#((1, 2, 3), {'name': '小明', 'age': 18})
#{}
demo(*gl_nums, **gl_xiaoming)
#(1, 2, 3)
#{'name': '小明', 'age': 18}

函数的返回值

# Python 专有,利用元组交换两个变量的值
a, b = b, a

面向对象(补充)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,364评论 0 5
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,912评论 17 410
  • 至于爱情,先记个备忘。晚点来填坑
    Monaka的世界阅读 117评论 0 0
  • 十二生肖的鸡年 决定不看春晚,怎么说呢。看完春晚节目单,竟然觉得没有人适合我浪费时间,这句话是废话,忽略 即使过了...
    一颗小鸡蛋阅读 120评论 0 0
  • 时间会改变一切
    好名字gaoshuai阅读 95评论 0 0