Python1.1-Python入门之基础语法 2023.4.27

目录

一.输入输出

二.数据类型

三.三大结构-顺序结构

四.三大结构-选择结构

五.三大结构-循环结构

六.函数

七.类


一.输入输出

        1.输入

def input_data1():
    # 输入一个数据
    data1 = input('Please Input a datas:')
    print(data1)

def input_data2_string():
    # 输入多个数据以空格分开
    data1,data2,data3=input("Please input two datas split by space").split()
    print(data1,data2,data3)


def input_data2_int():
    # 输入多个数据,返回值为int
    data1, data2 = map(int,input("Please input two datas split by space").split())
    print(data1, data2)

def input_list():
    lis=list(input().split())# 这里也可以用map
    print(lis)


if __name__ == '__main__':
    input_list()

        想要判断输入类型可以通过type(data)进行判断

        2.输出

if __name__ == '__main__':
    name = '汉卿HanQ'
    age = 24
    # b类似C 但不推荐!!!!
    print("大家好,我是%s" % name)
    print("大家好,我是%s" % (name,))
    print("大家好,我是%s,今年%d岁" % (name, age))
    print("大家好,我是%(name)s,今年%(age)d岁" % {"name": name, "age": age})
    # 使用format进行输出
    print("大家好,我是{},今年{}岁".format(name, age))
    print("大家好,我是{0},今年{1}岁".format(name, age))
    print("大家好,我是{1},今年{0}岁".format(age, name))
    print("大家好,我是{your_name},今年{your_age}岁".format(your_name=name, your_age=age))
数据类型代号含义
%s格式化字符串
%c格式化字符及ASCII码
%d格式化有符号整数
%f格式化浮点数,可以指定小数点后的位数,如%.2f
%i格式化有符号整数,老式写法
%u格式化无符号整数
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%e科学计数法格式化浮点数
%E同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f和%E的简写
%p用十六进制数格式化变量的地址

二.数据类型

        1.数字:int,complex,float,bool

def lean_int():
    # 学习int中地址
    a=6
    b=6
    print(id(a),'num is:',a,id(b),'num is:',b)# id(obj)为取地址
    a=8
    print(id(a), 'num is:', a, id(b), 'num is:', b)
    """
        输出为:
        2335945654672 num is: 6 2335945654672 num is: 6
        2335945654736 num is: 8 2335945654672 num is: 6
        可以发现a和b取相同值时地址相同,当a值发生变化后地址也发生了相应变化
    """

if __name__ == '__main__':
    lean_int()
def learn_float():
    a=1.2
    print(type(a),a)# type(obj)为输出参数类型
    """
        输出为:
        <class 'float'> 1.2
    """
if __name__ == '__main__':
    learn_float()
def learn_complex():
    # 复数分为实部 虚部(x虚数部后面必须J) 共轭复数
    a=2+6j# 复数的第一种赋值方式
    print(type(a),a)
    b=complex(2,6)#复数的第二种赋值方式
    print(type(b),b)
    #猜测一下,ab的地址还会相同么?
    print(id(a),id(b))
    """
        输出为:
        <class 'complex'> (2+6j)
        <class 'complex'> (2+6j)
        1945715799472 1945715799984   这里很明显两个复数不相同
    """
    print(a.real, b.real)# real获得实部
    print(a.imag,b.imag)# imag获得虚部
    print(a.conjugate(),b.conjugate())# conjugate()获得共轭复数
    """
        输出为
        2.0 2.0
        6.0 6.0
        (2-6j) (2-6j)
    """
if __name__ == '__main__':
    learn_complex()
def learn_bool():
    # 布尔类型分为True(非零值或非零字符串)和False(None 0 空) 其关系分为与或非(and or not)
    flag1=True;
    flag2=False;
    print("Flag1 is:",flag1,
          "Flag2 is:",flag2,
          "\nFlag1 and Flag2 is:",flag1 and flag2,
          "\nFlag1 or Flag2 is:",flag1 or flag2,
          "\nnot Flag1 is:",not flag1)
    """
        输出为:
        Flag1 is: True Flag2 is: False 
        Flag1 and Flag2 is: False 
        Flag1 or Flag2 is: True 
        not Flag1 is: False
    """
if __name__ == '__main__':
    learn_bool()

     

def learn_cal():
    """
        加 +
        减 -
        乘 *
        除 /
        整除 //
        求余 %
        幂 **
        最大公约数 gcd(num1,num2)
        取整 trunc(num)
        e^x exp(x)
        x^y pow(x,y)
        平方根 sqrt(x)
        指数log2(x)
    """
    a=2
    b=3
    print(a+b)
    print(a-b)
    print(a*b)
    print(a/b)
    print(a//b)
    print(a%b)
    print(a**b)
    print(math.gcd(a,b))
    print(math.exp(a))
    print(math.pow(a,b))
    print(math.sqrt(a))
if __name__ == '__main__':
    learn_cal()

          2.字符串:String

def learn_string():
    # python中‘’和""都可以定义字符出阿布
    str='abcde'
    # Python提供了正索引和反索引
    # 0   1  2  3  4
    # a   b  c  d  e
    # -5 -4 -3 -2 -1
    print(str,str[0],str[-5])# 输出为 abcde a a
    # 切片
    print(str[1:3])# 输出为bc 即输入胡str[1] str[2]
    # 替换
    print(str.replace('a','A'))# 输出为 Abcde
if __name__ == '__main__':
    learn_string()

        3.列表:list

def learn_list():
    # 列表分为单列表和多维列表
    list1=[1,2,3,4]
    list2=[5,6,7,8]
    list3=list1+list2
    list4=[list1,list2]
    print(list1,list2,list3,list4)
    # 输出为list1 list2          [1, 2, 3, 4] [5, 6, 7, 8]
    #      list3=list1+list2    [1, 2, 3, 4, 5, 6, 7, 8]
    #      list4=[list1,list2]  [[1, 2, 3, 4], [5, 6, 7, 8]]

    # 列表索引也分为正索引和反索引,类似String
    print(list1[0],list1[-4])# 1 1
    # 遍历列表list1
    for i in range (0,len(list1)):
        print(list1[i])# 输出list1内容 1 2 3 4
if __name__ == '__main__':
    learn_list()

len(list_obj)列表元素个数
max(list_obj)返回列表元素最大值
min(list_obj)返回列表元素最小值
list(seq)将元组转换为列表
list.append(obj)末尾追加新对象
list.count (obj)计算某个元素在列表中出现的个数
list.index(obj)在列表中找出某个值第一个匹配项的索引位置
list.pop(obj)将对象插入列表
list.insert(index,obj)一处列表中最后一个元素,并返回该元素的值
list.remove(obj)一处列表中某个值匹配的第一个匹配项
list.sort(obj)对列表进行排序
list.reverse(obj)对列表进行反转                                        
list.clear(obj) 清空列表                     

        4.元组:Tuple

def learn_tuple():
    # 创建元组与创建列表类似,使用()但若元组中只有一个元素,也要加上括号 否则括号会被当作运算符
    tuple1 =('a','b')
    tuple2=('a',)
    tuple2_no=('a')
    print(tuple1,tuple2,tuple2_no)
    """
        输出为:
        ('a', 'b') ('a',) a
    """
    # 其余用法与列表类似
if __name__ == '__main__':
    learn_tuple()

             元组的优点

  • 可以使函数返回多个值
  • 可以使程序运行性能提升
  • 一般来说,创建元组类型tuple的变量比列表类型list要快,而且占用更小的存储空间。
  • 使用元组是线程安全的
  • 元组类型变量的元素不可更改性,可保证多线程读写时的安全问题。

          5.字典:Dictionary

def learn_dict():
    # 字典为键值对形式存在 创建字典
    dict1= {'userName':'17044908','pwd':'123456','phone':'12345678911'}
    print(dict1)
    # 输出 {'userName': '17044908', 'pwd': '123456', 'phone': '12345678911'}

    # 遍历字典
    for key,val in dict1.items():
        print(key,val)
    """
        输出为:
        userName 17044908
        pwd 123456
        phone 12345678911
    """
if __name__ == '__main__':
    learn_dict()

        6.集合:Set

def learn_set():
    #创建集合 集合中值必须唯一
    set1={1,2,3,4,4}
    set2={1,4,6,6,7}
    print(set1)# 输出为{1, 2, 3, 4}
    print(set1|set2)# 并 {1, 2, 3, 4, 6, 7}
    print(set1&set2)# 交 {1, 4}
    print(set1-set2)# 差 {2, 3}
    print(set1^set2)# 对称差 {2, 3, 6, 7}

if __name__ == '__main__':
    learn_set()

三.三大结构-顺序结构

def learn_sequence():
    #从上到下以此执行 例如计算正方形面积
    len=3
    high=5
    s=len*high
    print("The square area is ",s)
    # 输出The square area is  15
if __name__ == '__main__':
    learn_sequence()

四.三大结构-选择结构

def learn_if():
    #学习if选择结构 例如判断今天是否为工作日
    day=int(input("请输入1-7之间一个数"))#input输入为str 需要通过int()转为int
    if(day>=1 and day<=7):
        if(day>=1 and day<=5):
            print('This is work day')
        else:
            print('This is a work overtime day!!')
    else:
        print('Data Error')
if __name__ == '__main__':
    learn_if()

五.三大结构-循环结构

        1.while循环

def learn_while():
    #好了,现在我们觉得learn_if每次都要点一次,我们怎么改进呢?
    flag=True
    while(flag):
        day=int(input("请输入1-7之间一个数,输入0结束:"))
        if(day==0):# 如果输入为0通过将flag=False和break跳出循环
            flag=False
            print("Exit")
            break
        if (day >= 1 and day <= 7):
            if (day >= 1 and day <= 5):
                print('This is work day')
            else:
                print('This is a work overtime day!!')
        else:
            print('Data Error')
if __name__ == '__main__':
    learn_while()

        2.for循环

def learn_for():
    #输入0-9
    for i in range(1,10):
        print(i)
    #输出输出的str串的字符
    str=input("Please input a string:")
    for i in str:
        print(i)
if __name__ == '__main__':
    learn_for()

六.函数

        相信学习完1-5,已经基本学会了函数的调用,但还不够完整,因为函数需要有参数和返回值,下面举个有参数和返回值的例子

def choose_max(num1,num2):
    """
    比较num1和num2两个最大的值
    :param num1: 
    :param num2: 
    :return: 
    """
    if(num1>num2):
        return num1;
    else:
        return num2
if __name__ == '__main__':
    maxNum = choose_max(1,2)
    print(maxNum)# 输出为:2

七.类

        1.定义类

class Person:
    name=None
    age=None
    def __init__(self):
        pass
    def setName(self ,name):
        self.name=name
    def setAge(self,age):
        self.age=age
    def say(self):
        print("My name is ",self.name,"My age is ",self.age)
if __name__ == '__main__':
    my=Person()
    my.setName('HanQ')
    my.setName('24')
    my.say()

        2.继承+多态:

class Boy(Person):
    def run(self):
        print('run')
    def say(self):
        print('I am a boy called {},{} ages'.format(self.name,self.age))
if __name__ == '__main__':
    boy=Boy()
    boy.setName('HanQ')
    boy.setAge(24)
    boy.say()
    boy.run()

        3.抽象

class animals(metaclass=abc.ABCMeta):
    all_type='an'
    @abc.abstractmethod# 定义抽象方法 无需实现功能
    def callName(self):
        pass
class Person(animals):

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值