• python学习第二节


    python3中的input与python2中的raw_input一样
    python2中的input()用户输入的是什么类型,就被定义为什么类型,所以在python2中
    input()中需要加‘’ 定义为字符串,否则会以为是变量名,然而没有这个变量名的值,所以会报错。

    end=' '
    将print自带的换行符换成空

    输出1-10 除了7

    1-100的和

    找出所有奇数

    #求1-2+3-4+5 ... 99的所有数的和

    限制用户登录

    字符串格式操作符
    2.7
    print "%s is number %d!" % ("python" ,1)
    3.5
    print ("%s is number %d" % ("python" ,1))

    %s表示由一个字符串来替换,%d表示由一个整形来替换,%f表示由一个浮点型来替换。

    程序输入和raw_input()内建函数 2.x里有,3.x里没有,2.x尽可能不用input

    user = raw_input('Enter login name:')

    print 'Your login is:',user

    输入数值字符串,并将字符串转换为整形
    num = raw_input('Now enter a number:')

    print 'Doubling your number: %d' % (int(num) * 2)

    name = “aliex li”
    name2 = name #name2赋值为name
    print (“my name is”,name,name2)

    name = “tom” #更改name赋值 看name2会不会随其改变
    print (name,name2)

    实验结果为不随其改变,原因是name2并没有指向name,而是直接指向alex li

    变量定义规则:
    1 变量名只能是字母、数字、下划线的任意组合
    2 变量名的第一个字符不能是数字
    3 还有一些关键字不能声明为变量名 例如and as break assert class等等

    变量名一般书写方法

    gf_of_oldboy = “xxx” #下划线
    GFOfOldBoy = “xxx” #首字母大写
    PIE =” apple pie” 自定义常量,用大写,意思是不应更改


    input 用户输入
    username = input("your username :")

    password = input("your password :")

    print ("your name is %s ,your password is %s" % (username,password))


    input输入并转换字符类型
    age = int(input('your age :'))

    格式化输出小例子
    name = input('your name :')

    age = int(input('your age :'))

    print(type(age)) #打印变量类型

    job = input('your job :')

    info = '''

    --------------info of %s--------------

    name: %s

    age: %d

    job: %s''' % (name,name,age,job)

    print (info)

    另一种格式化拼接输出

    name = input('your name :')

    age = int(input('your age :'))

    print(type(age)) #打印变量类型

    job = input('your job :')

    info2 = '''

    --------------info2 of {_name}--------------

    name: {_name}

    age: {_age}

    job: {_job}

    '''.format(_name = name,

    _age = age,

    _job = job)

    print (info2)

    第三种格式化拼接输出
    name = input('your name :')

    age = int(input('your age :'))

    print(type(age)) #打印变量类型

    job = input('your job :')

    info3 = '''

    --------------info3 of {0}--------------

    name: {0}

    age: {1}

    job: {2}

    '''.format(name,age,job)

    print (info3)

    密文输入,调用getpass模块,该模块在Pycharm中不能使用,可以用cmd中执行py文件

    import getpass

    name = input('your name :')

    age = getpass.getpass('your age :')

    job = input('your job :')

    info3 = '''

    --------------info3 of {0}--------------

    name: {0}

    age: {1}

    job: {2}

    '''.format(name,age,job)

    print (info3)

    简单的if语句例子
    username = ("tom")

    password = ("abc")

    import getpass

    name = input("Enter your name :")

    passwd = getpass.getpass("Enter your password")

    if name == username and passwd == password:

    print("Welcome user {user} login".format(user = username))

    else:

    print("Invalid username or password")


    错误提示
    IndentationError 缩进错误
    一级代码要顶格写
    if语句
    age_of_old_boy = 56

    guess_age = int(input("guess age :"))

    if guess_age == age_of_old_boy:

    print("bingo,you got it")

    elif guess_age > age_of_old_boy:

    print("try to smaller")

    else:

    print("try to bigger")

    while循环
    age_of_old_boy = 56

    count = 0

    while True:

    if count == 3:

    break

    guess_age = int(input("guess age :"))#这个赋值相当于把上面的if结束了,所以下面要用if而不是elif

    if guess_age == age_of_old_boy:

    print("bingo,you got it")

    break

    elif guess_age > age_of_old_boy:

    print("try to smaller")

    else:

    print("try to bigger")

    count += 1
    结尾增加判断输出:
    age_of_old_boy = 56

    count = 0

    while count < 3:

    guess_age = int(input("guess age :"))

    if guess_age == age_of_old_boy:

    print("bingo,you got it")

    break

    elif guess_age > age_of_old_boy:

    print("try to smaller")

    else:

    print("try to bigger")

    count +=1

    if count == 3:

    print ("you have tried too many times,fuck off")
    or
    age_of_old_boy = 56

    count = 0

    while count < 3:

    guess_age = int(input("guess age :"))

    if guess_age == age_of_old_boy:

    print("bingo,you got it")

    break

    elif guess_age > age_of_old_boy:

    print("try to smaller")

    else:

    print("try to bigger")

    count +=1

    else:

    print ("you have tried too many times,fuck off")

    while循环升级版

    age_of_old_boy = 56

    count =0

    while count <3:

    guess_age = int(input("guess age :"))

    if guess_age == age_of_old_boy:

    print("bingo,you got it")

    break

    elif guess_age > age_of_old_boy:

    print("try to smaller")

    else:

    print("try to bigger")

    count +=1

    if count ==3:

    keep_guessing = input("Do you want to keep guessing ?")

    if keep_guessing != 'no':

    count =0

    continue 功能是跳出本次循环,继续下一次循环

    for i in range(0,10):

    if i <3:

    print('loop',i)

    else:

    continue

    print('hehe')

    for循环套for循环,break跳出本次循环
    for i in range(10):

    print('-----',i)

    for j in range(10):

    print(j)

    if j >5:

    break



    读和写
    fout = open('output.txt','w') #打开文件output,以W参数模式

    line1 = "This here's the wattle, "

    fout.write(line1) #将line1写到output.txt

    line2 = 'the emblem of our land. '

    fout.write(line2) #将line2写到output.txt

    fout.close() #关闭文件


    文件名和路径
    os模块提供了用于操作文件和目录的函数(os代表operating system,即操作系统)。
    os.getcwd 返回当前目录的名称

    import os

    cwd = os.getcwd()

    print(cwd)

    cwd表示current working directory 当前工作目录,是相对路径。

    os.path.abspath(‘memo.txt’)来寻找文件绝对路径。
    absolute_path=os.path.abspath('output.txt')

    print(absolute_path)

    利用os.path.exists(‘memo.txt’)来判断文件是否存在。
    import os

    exists=os.path.exists('relativity.txt')

    print(exists)

    还有检查是否为目录、是否为文件、等等具体参考《像计算机科学家一样思考python》147页。(os.path.isdir os.path.isfile os.listdir(cwd)


    保存脚本为文件例子:
    say_daddy='''

    #/usr/bin/env python

    #-*- coding:utf-8 -*-

    #Author: Yuqiuyang

    baba = "爸爸"

    count = 0

    while True:

    if count == 10:

    break

    呐喊 = input('叫爸爸 :')

    if 呐喊==baba:

    print('乖儿子,爽不爽')

    break

    elif 呐喊 != baba:

    print('看我干不死你')

    count +=1

    print('啊 射了,好累。。')'''

    fout = open("say_daddy.py",'w')

    fout.write(say_daddy)

    fout.close()

    模块初识别

    import sys

    print(sys.path) #打印绝对路径

    print(sys.argv) #打印相对路径,还可以打印参数

    import os

    cmd_res = os.system("dir") #os.system()可以直接与系统交互,执行dir命令,不保存结果

    print(cmd_res) #并不能打印出dir命令,因为system()直接输出到屏幕,打印结果为0,执行成功意思。

    import os

    cmd_res = os.popen("dir") #打印为内存对象地址

    print(cmd_res)

    字符串操作

    name = 'my name is alex'

    print(name.count('a')) #计数a有多少个

    print(name.capitalize())#首字母大写

    print(name.center(50,'-'))#重复50遍-,并将name至中间

    print(name.endswith('ex'))#判断以ex结尾

    name2 = 'my name is alex'

    print(name2.expandtabs(tabsize=30))#将tab键转换为30个空格

    print(name.find('e')) #查找索引

    print(name[name.find('names'):])#字符串也可以切片

    name3 = 'my name is {mingzi},and my age is {years}'

    print(name3.format(mingzi = 'yuqiuyang',years = 23)) #格式操作

    print(name3.format_map({'mingzi':'yuqiuyang','years':'23'})) #字典的方式格式操作

    print('abc123'.isalnum()) #包含英文字符和数字为true

    print('abc123='.isalnum())#包含特殊字符为false

    print('abC'.isalpha())#判断是否为英文字母

    print('1'.isdecimal())#判断是否为十进制

    print('1'.isdigit())#判断是否为数字

    print('a1A'.isidentifier())#判断是不是一个合法的变量名
    print('A'.islower())#判断是否为小写

    print('2'.isnumeric())#判断是否为数字

    print(' '.isspace())#判断是否为空格

    print('My Name Is '.istitle())#判断是否每个首字母大写

    print('My name is'.isprintable())#判断是否能打印。tty file,drive file不能打印

    print('MY NAME IS'.isupper())#判断是否都为大写

    print(name.ljust(50,'*'))# 这个是Ljust,长50,没有用*号结尾补齐

    print(name.rjust(50,'-'))# 这个是Ljust,长50,没有用-号开头补齐

    print('ALEX'.lower())#将大写变成小写

    print('ALEX'.upper())#将小写变成大写

    print('ALEX '.lstrip())#将左边空格和回车,右边的不去除

    print('---')

    print(' ALEX '.rstrip())#将右边空格和回车,左边的不去除

    print('---')

    print(' ALEX '.strip())#去掉所有空格和回车

    print('---')

    p = str.maketrans('abcdefghi','123456789')#字母和数字一一对应

    print('abed bi'.translate(p))#将前面的字母转换成相应的数字

    print('alex li'.replace('l','L'))#将l替换成L

    print('alex li'.replace('l','L',1))#将第1个l替换成L

    print('alex li'.rfind('l'))#找到最右边l的下标

    print('al ex li'.split('l'))#将字符串以l做分隔符做成列表

    print('1+2+3+4'.split('+'))#将字符串以+做分隔符做成列表

    print('1+2+3+4'.splitlines())#将以换行符为分隔符做列表

    print('Alex Li'.swapcase())#字母大小写取反

    print('alex li'.title())#首字母大写

    print('alex li'.zfill(50))#字数不够在前面补齐0

  • 相关阅读:
    帧锁定同步算法
    为 Raft 引入 leader lease 机制解决集群脑裂时的 stale read 问题
    etcd:从应用场景到实现原理的全方位解读
    给定一个二叉搜索树(BST),找到树中第 K 小的节点
    UDP如何实现可靠传输
    理解TCP/IP三次握手与四次挥手的正确姿势
    Redis持久化
    Redis提供的持久化机制(RDB和AOF)
    redis渐进式 rehash
    redis rehash
  • 原文地址:https://www.cnblogs.com/ArmoredTitan/p/6957201.html
Copyright © 2020-2023  润新知