python用户交互、基本数据类型、运算符
用戶交互
? ? ? ?在實(shí)際應(yīng)用中,我們經(jīng)常需要用戶輸入相應(yīng)信息,根據(jù)用戶輸入信息進(jìn)行反饋,此時(shí)我們需要input/output信息
? ? ? ?python中提供了便捷的輸入方法input()和print()
? ? ? ?在python3中
name = input("請(qǐng)輸入")print(name)
print(type(name))
>>>
? ?請(qǐng)輸入123
? ?123
? ? <class 'str'>
? ? Process finished with exit code 0
? ? >>>
? ? 意味著在python3中用戶輸入的內(nèi)容都以字符串的形式保存下來(lái)了
? ? python2中:
? ?C:\Users\DELL>python2
? ?Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
? ?Type "help", "copyright", "credits" or "license" for more information.
? ? >>> name = input("請(qǐng)輸入")
? ?請(qǐng)輸入123
? ? >>> print(name)
? ? 123
? ? ?>>>
? ? ?>>> print(type(name))
? ? ?<type 'int'>
? ? ?>>>
? ? ?>>> age = raw_input("請(qǐng)輸入")
? ? ?請(qǐng)輸入123
? ? ?>>> print(type(age))
? ? ?<type 'str'>
? ? ?>>>
? ? 輸入123時(shí)是以int類型保存下來(lái)的
? ? 總結(jié):在python3和python2中,input()方法的區(qū)別是py3將用戶輸入的內(nèi)容全部以字符串的形式保存下來(lái),而在py2是將用戶輸入的內(nèi)容以原格式保存下來(lái),而在python2中,raw_input()的用法和python3中的input()用法一樣
格式化輸出
name = input("name = ")age = input("age = ")
hobby = input("hobby = ")
print("name is %s\nage is %s\nhobby is %s"%(name, age,hobby))
>>>
輸出結(jié)果
>>>
C:\Users\DELL\AppData\Local\Programs\Python\Python37\python3.exe C:/Users/DELL/PycharmProjects/untitled1/day02/day03總結(jié).py
name = 李靜
age = 16
hobby = Swimming
name is 李靜
age is 16
hobby is Swimming
>>>
>>>
python中%s為字符串占位符,實(shí)際上%s可以為任何數(shù)據(jù)類型占位,輸出時(shí)雙引號(hào)后面用%變量名來(lái)格式化輸出
?
數(shù)據(jù)類型
1、數(shù)字類型:①整數(shù)型:age = 18
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >>>type(age)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? >>>(class 'int')
? ? ? ? ? ? ? ? ? ? ? ? ②浮點(diǎn)型:height = 176.5
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?>>>type(height)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?>>>(class 'float')
2、字符串類型:變量值用單引號(hào)雙引號(hào)或者三引號(hào)引起來(lái)都可以
? ? ?>>> name = "heillo"
? ? ?>>> type(name)
? ? ?<class 'str'>
? ? ?>>>
3、列表類型:可以表示一系列元素,用中括號(hào)括起來(lái),元素間用逗號(hào)分隔
? ? ?>>>val = ["Alex",18,[12,33,"egon"],20]
? ? ?>>>type(val)
? ? ?<class ‘list’>
? ? ?>>>
? ? ?列表中的元素可以是各種類型,自然也可以是列表和字典
4、字典類型:可以表示一對(duì)一對(duì)的元素,元素用花括號(hào)括起來(lái):{“鍵”:值,“鍵”:值},元素被稱為鍵值對(duì)
? ? >>>val = {"name":"Alex","age":18}
? ? >>>type(val)
? ? <class 'dict'>
? ? >>>
5、布爾類型:bool,用作判斷條件用。布爾類型只有兩種狀態(tài),True和False,所有數(shù)據(jù)類型都對(duì)應(yīng)布爾值,其中 0,none,空字符串、空列表、空字典等為空的數(shù)據(jù)是False,其余都是True
? ? ?>>> type(10>3)
? ? ?<class 'bool'>
? ? ?>>>
例:if 10>3:
? ? ? ? ? ? ?print("you are right")
>>>
you are right
>>>
?
運(yùn)算符
1、數(shù)字運(yùn)算符:+,-,*,/,**,%,//
>>> print(10 + 2)
12
>>> print(10 - 2)
8
>>> print(10 * 2)
20
>>> print(10 / 2)
5.0
>>>
>>> print(10 ** 2)
100
>>> print(10 % 2)
0
>>> print(10 // 2)
5
>>>
2、比較運(yùn)算符
>>> print(10 != 10)
False
>>> print(10>10)
False
>>> print(10>=10)
True
>>> print(10<=10)
True
>>> print(10<10)
False
>>> print(10 == 10)
True
>>> print(10 > "a")? ? #數(shù)字類型不能與字符串類型比較
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'
>>> print("abcd" > "abce")?
False
總結(jié)? #字符串類型的比較根據(jù)字符串字符從左到右開始比較,如果第一個(gè)字符誰(shuí)對(duì)應(yīng)的ASCII碼值大則那個(gè)字符串大,第一個(gè)字符相同則判斷第二個(gè)字符,以此類推
>>> print(["123",12]>["abc",12])? ?
False
總結(jié):#列表類型的比較是從第一個(gè)元素開始比較,第一個(gè)元素誰(shuí)大則哪個(gè)列表大,如果第一個(gè)元素相等則比較第二個(gè)元素,以此類推,注意,如果比較的元素不是同一類型則報(bào)錯(cuò),如下:
>>> print(["123",12]>[123,12])? ?#
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'
>>>
3、賦值運(yùn)算符:“=”,age = 19
交叉賦值:
>>> x = 10
>>> y = 20
>>> x,y = y,x
>>> print(x,y)
20 10
>>>
等同于:
>>> x = 10
>>> y = 20
>>> z = x
>>> x = y
>>> y = z
>>> print(x,y)
20 10
>>>
增量賦值:
a = a + 1? ?<==> a += 1
a = a - 1? <==> a -= 1
a = a * 2 <==> a *= 2
a = a / 2 <==> a /= 2
a = a%2? <==> a %= 2
a = a // 2 <==> a //= 2
a = a ** 3 <==> a **= 3
?
?
解壓賦值:將列表中的每個(gè)元素分別賦值給變量
>>> L1 = [1,2,3,4]
>>> a,b,c,d = L1??
>>> print(a,b,c,d)
1 2 3 4
>>>
接收元素變量必須與元素個(gè)數(shù)一致,否則報(bào)錯(cuò),如下:
>>> val = [1,2,3,4,5]
>>> a,b,c = val
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 3)
>>>
?
當(dāng)列表元素比較多,這時(shí)候只想取前兩個(gè)值和后兩個(gè)值怎么辦呢,看下面代碼
>>> L2 = [1,2,3,4,5,6,7,8]
>>> a,b,*_,c,d = L2? ? #? ?*_表示將中間不想取的值賦值給"_",此時(shí)“_”是個(gè)列表
>>> print(a,b,*_,c,d)? ? ?#打印*_時(shí)即將列表“_”中的元素打印出來(lái)
1 2 3 4 5 6 7 8
>>> print(a,b,_,c,d)
1 2 [3, 4, 5, 6] 7 8
>>> print(a,b,c,d)
1 2 7 8
>>>
總結(jié):*_這種方式可以幫我們解決解壓賦值必須所有元素都取的困擾,_作為變量來(lái)使用,也可以用其他字符替代。但這種方式只在python3中有效
?
4、邏輯運(yùn)算符: and 、 or 、not,判斷條件使用
and :邏輯與,判斷左右兩個(gè)條件,當(dāng)兩個(gè)條件任意一個(gè)為假時(shí),整體結(jié)果為假
>>> print(10 > 2 and "a" > "b")
False
>>>
or:邏輯或,判斷左右兩個(gè)條件,當(dāng)兩個(gè)條件任意一個(gè)為真時(shí),整體結(jié)果為真
>>> print(10 > 2 or "a" > "b")
True
>>>
not:邏輯取反,取條件真假相反的結(jié)果
>>> print("a" > "b")
False
>>> print(not "a" > "b")
True
>>>
6、身份運(yùn)算:is? ?比較內(nèi)存地址是否相同? ?而“”==“”是比較值
>>> x = 10
>>> y = 10
>>> print(x is y)
True
>>> id(x)
140714018137200
>>> id(y)
140714018137200
>>>
注意:變量值相等,內(nèi)存地址不一定相同,內(nèi)存地址相同,值一定相等
?
轉(zhuǎn)載于:https://www.cnblogs.com/dongxixi/p/10567420.html
總結(jié)
以上是生活随笔為你收集整理的python用户交互、基本数据类型、运算符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【收藏】轻松导出全民K歌里任何人录制的短
- 下一篇: 代理自动配置文件PAC的使用方法